"),o.close();var l=n.mapValues(u.SandboxedFunctions,(function(e){return i[e]}));c.dispatch(r.SANDBOXED_FUNCTIONS_ADDED,{sandboxedFunctions:l}),t.parentNode.removeChild(t)}catch(e){d.warn("Unable to create a sandbox: ",e)}}}),(function(e,t,i){var n=i(2),r=i(23),a=i(94),o=i(16),s=o.get("stores/plugins"),u=i(7),c=i(25),d=i(9),l=!1,f=[i(107),i(108),i(128)],g=["clientMetadata","cookieDomain","disable","load","optOut","rum"];t.push=function(e,t){var i,a,o,s;if(!n.isArray(e)&&n.isObject(e))s=n.isUndefined(e.version)?1:e.version,i=e.type,o=[e];else if(n.isArray(e))s=0,i=e[0],o=e.slice(1);else{if(!n.isString(e))return r.warn("API / Ignoring non-array/object/string argument:",e),!1;s=0,i=e,o=[]}if(f[s]&&(a=f[s][i]),t&&g.indexOf(i)===-1)return r.debug("API / Ignoring non high priority function:",i,o),!1;if(!a)return r.warn('API / No function found for "'+i+'" (v'+s+") with arguments:",o),!1;r.log('API / Executing: "'+i,'" with arguments:',o);try{a.apply(null,o),d.dispatch(u.RECORD_API_USAGE,{methodName:s?"v"+s+"."+i:i})}catch(e){r.error(e)}return!0},t.get=function(e){if(l&&"state"!==e)return void r.warn('Module "'+e+'" not found.');r.log('API / Getting module: "'+e+'"');var t=a[e];return t?n.isArray(t)&&(t=o.evaluate(t)):t=s.getPlugin(c.PluginTypes.apiModules,e),t?(d.dispatch(u.RECORD_API_USAGE,{methodName:"get."+e}),t):void r.warn('Module "'+e+'" not found.')}}),(function(e,t,i){function n(e,t,i,n){var r=e.getLayerState(n),a=t.get(n),s=i.get();if(!r||!a)return s?{layer:{name:s.layerName,id:s.layerId,policy:s.layerPolicy,integrationStringVersion:s.integrationStringVersion},experiment:{name:s.experimentName,id:s.experimentId},variation:{name:s.variationName,id:s.variationId},isLayerHoldback:!1}:null;if(d.isSingleExperimentPolicy(a.policy)&&r.decision.isLayerHoldback)return null;var u=r.decision.experimentId,c=r.decision.variationId;if(!u||!c)return null;var l,f;return(l=o.find(a.experiments,{id:u}))?(f=o.find(l.variations,{id:c}),f?{layer:{name:a.name,id:a.id,policy:a.policy,integrationStringVersion:a.integrationStringVersion},experiment:{name:l.name,id:l.id},variation:{name:f.name,id:f.id},isLayerHoldback:r.decision.isLayerHoldback}:null):null}function r(e,t,i,n,r,s){var u=[],c=e.getLayerStates();s.onlySingleExperiments&&(c=o.filter(c,(function(e){var i=t.get(e.layerId);return i&&d.isSingleExperimentPolicy(i.policy)})));var f=o.map(c,(function(e){var t=!!e.decision.variationId,i=e.decisionActivationId&&e.decisionActivationId===n.getActivationId(),r=l.getExperimentAndVariation(),a=r?r.variationId:null,s=t&&e.decision.variationId===a;return o.extend(e,{isActive:t&&i||s,visitorRedirected:s})})),g=r?o.filter(f,r):f;return o.each(g,(function(e){var n=a(e,t,i,s.includeOfferConsistency);n&&u.push(n)})),u}function a(e,t,i,n){var r,a,s=e.layerId,u=t.get(s)||{},c=o.map(u.experiments,(function(e){return o.pick(e,["id","name"])}));if(n||!u.decisionMetadata||!u.decisionMetadata.offerConsistency){
var d={id:s,campaignName:u.name||null,experiment:null,allExperiments:c,variation:null,reason:e.decision.reason,isActive:!!e.isActive,visitorRedirected:e.visitorRedirected,isInCampaignHoldback:e.decision.isLayerHoldback};e.decision&&e.decision.experimentId&&(r=o.find(u.experiments,{id:e.decision.experimentId})),r&&(d.experiment=o.pick(r,["id","name","campaignName"])),r&&e.decision.variationId&&(a=o.find(r.variations,{id:e.decision.variationId})),a&&(d.variation=o.pick(a,["id","name"]));var l=o.map(e.decisionTicket.audienceIds,(function(e){return o.pick(i.get(e),["id","name"])}));return d.audiences=l,u.decisionMetadata&&u.decisionMetadata.offerConsistency&&(d.pageId=e.pageId),d}}var o=i(2),s=i(95),u=i(96),c=i(98),d=i(44),l=i(99);t.data=["stores/audience_data","stores/client_metadata","stores/event_data","stores/layer_data","stores/view_data","stores/group_data","stores/interest_group","stores/tag_group","stores/global",function(e,t,i,n,r,a,s,d,l){var f={},g={},p={},h={audiences:e.getAudiencesMap(),events:i.getEventsMap(),campaigns:f,pages:r.getPagesMap(),experiments:g,variations:p,projectId:l.getProjectId(),snippetId:l.getSnippetId(),accountId:l.getAccountId(),dcpServiceId:l.getDCPServiceId(),revision:l.getRevision(),clientName:t.getClientName(),clientVersion:t.getClientVersion()},_=c.dereferenceChangeId;return o.each(n.getAll(),(function(e){u.defineProperty(f,e.id,(function(){var t=o.extend({},e);return u.defineProperty(t,"changes",(function(){return o.map(e.changes,_)}),"campaign"),u.defineProperty(t,"experiments",(function(){return o.map(e.experiments,(function(e){return g[e.id]}))}),"campaign"),t}),"campaignMap","byId"),o.each(e.experiments,(function(e){u.defineProperty(g,e.id,(function(){var t=o.extend({},e);return u.defineProperty(t,"changes",(function(){return o.map(e.changes,_)}),"experiment"),u.defineProperty(t,"variations",(function(){return o.map(e.variations,(function(e){return p[e.id]}))}),"experiment"),t}),"experimentMap","byId"),o.each(e.variations,(function(e){u.defineProperty(p,e.id,(function(){var t=o.extend({},e);return u.defineProperty(t,"actions",(function(){return o.map(e.actions,(function(e){return o.extend({},e,{changes:o.map(e.changes,_)})}))}),"variation"),t}),"variationMap","byId")}))}))})),h.groups=a.getGroupsMap(),h}],t.visitor=["stores/visitor",function(e){return o.cloneDeep(e.getVisitorProfile())}],t.visitor_id=["stores/visitor_id",function(e){return{randomId:e.getRandomId()}}],t.state=["stores/audience_data","stores/layer_data","stores/layer","stores/view_data","stores/view","stores/global","stores/observed_redirect",function(e,t,i,a,u,c,f){return{getCampaignStates:function(n){var a={},s=r(i,t,e,c,n,{includeOfferConsistency:!1});return o.each(s,(function(e){a[e.id]=e})),a},getExperimentStates:function(n){var a=r(i,t,e,c,n,{includeOfferConsistency:!1,onlySingleExperiments:!0}),s=["audiences","variation","reason","visitorRedirected","isActive"],u=o.reduce(a,(function(e,t){var i=t.allExperiments[0];return e[i.id]=o.extend({},o.pick(t,s),{id:i.id,experimentName:i.name,isInExperimentHoldback:t.isInCampaignHoldback}),e}),{});return u},getCampaignStateLists:function(n){var a={},s=r(i,t,e,c,n,{includeOfferConsistency:!0});return o.each(s,(function(e){var t=e.id;a[t]||(a[t]=[]),a[t].push(e)})),a},getPageStates:function(e){var t=u.getAll(),i=o.reduce(t,(function(e,t){var i=a.get(t.id);return e[t.id]=o.extend({},o.pick(i,["id","name","apiName","category","staticConditions","tags"]),o.pick(t,["isActive","metadata"])),e[t.id].isActive=!!e[t.id].isActive,e}),{});return e?o.pickBy(i,e):i},isGlobalHoldback:function(){return c.isGlobalHoldback()},getActivationId:function(){return c.getActivationId()},getVariationMap:function(){var e=i.getLayerStates(),n={};return o.each(e,(function(e){var i=t.get(e.layerId);if(e.decision&&e.decision.experimentId&&(n[e.decision.experimentId]={id:e.decision.variationId,name:null,index:null},i)){var r=o.find(i.experiments,{id:e.decision.experimentId});if(r&&e.decision.variationId)var a=o.find(r.variations,{id:e.decision.variationId}),s=o.findIndex(r.variations,{id:e.decision.variationId});a&&(n[e.decision.experimentId]={id:e.decision.variationId,name:a.name,index:s})}})),n},getActiveExperimentIds:function(){var e={};return o.each(this.getCampaignStateLists({isActive:!0}),(function(t){o.each(t,(function(t){e[t.experiment.id]=!0}))})),o.keys(e)},getRedirectInfo:function(){var e=l.getExperimentAndVariation();return e&&(e.referrer=l.getReferrer()),e},getDecisionString:function(e){if(!e)throw new Error("Must pass a config to getDecisionString");e=o.extend({maxLength:255,shouldCleanString:!1},e);var r=n(i,t,f,e.campaignId);return r?s.generateAnalyticsString(r.layer,r.experiment,r.variation,r.isLayerHoldback,e.maxLength,e.shouldCleanString):null},getDecisionObject:function(e){if(!e)throw new Error("Must pass a config to getDecisionObject");e=o.extend({maxLength:255,shouldCleanString:!1},e);var r=n(i,t,f,e.campaignId);if(!r)return null;var a=s.formatNamesAndIdsForAnalytics(r.layer,r.experiment,r.variation,e.shouldCleanString),u=o.mapValues(a.names,(function(t,i){return s.combineAndTruncateIdAndName(t,a.idStrings[i],e.maxLength)})),c={experiment:u.experiment,variation:u.variation};return d.isSingleExperimentPolicy(r.layer.policy)||o.extend(c,{campaign:u.layer,holdback:r.isLayerHoldback}),c}}}],t.utils=i(100).create(),t.jquery=["env/jquery",function(e){return e}],t.event_emitter=i(106)}),(function(e,t,i){function n(e){return e.replace(/[^a-zA-Z0-9\.\~\!\*\(\)\']+/g,"_")}function r(e){return!u.isEmpty(e)&&u.includes(["and","or","not"],e[0])}function a(e,t){var i="";return u.isEmpty(t)?i=l:(i=u.reduce(t,(function(t,i){var r=e.get(i);return r?t+n(r.name?r.name:r.id)+",":t}),""),i=i.slice(0,-1)),i}function o(e,i,n,r,a,o){if(!_.isSingleExperimentPolicy(e.policy)||!r){var s=!_.isSingleExperimentPolicy(e.policy)&&r,c=t.formatNamesAndIdsForAnalytics(e,i,n,o),l=[c.names.experiment,c.names.variation],g=[c.idStrings.experiment,c.idStrings.variation];_.isSingleExperimentPolicy(e.policy)||(l.unshift(c.names.layer),g.unshift(c.idStrings.layer));var p=u.reduce(g,(function(e,t){return e+t.length}),0),h=l.length-1+(s?1:0),v=h*d.length,m=p+v;if(s&&(m+=f.length),m>a)throw new Error("The analytics string size is too low to send the entity IDs.");for(var E=a-m,I=l.length,y=[],S=l.length-1;S>=0;S--){var A=l[S],T=Math.min(A.length,Math.floor(E/I));E-=T,I--,y.unshift(A.substring(0,T))}var R=u.map(y,(function(e,t){return e+g[t]}));return s&&R.push(f),R.join(d)}}function s(e,i,n,r,a,o){var s=r?f:g,c=3*d.length,l=t.formatNamesAndIdsForAnalytics(e,i,n,o),p=l.names,h=l.idStrings,v=u.reduce(h,(function(e,t){return e+t.length}),0);if(v+c+s.length>a)throw new Error("The analytics string size is too low to send the campaign, experiment, and variation IDs.");var m=a-v-c-s.length,E={};E.variation=Math.min(p.variation.length,Math.floor(m/3)),m-=E.variation,E.experiment=Math.min(p.experiment.length,Math.floor(m/2)),m-=E.experiment,E.layer=m;var I={};u.each(p,(function(e,t){I[t]=e.substring(0,E[t])}));var y=[];return _.isSingleExperimentPolicy(e.policy)||y.push(I.layer+h.layer),y=y.concat([I.experiment+h.experiment,I.variation+h.variation,s]),y.join(d)}var u=i(2),c=i(16),d=":",l="everyone_else",f="holdback",g="treatment",p="",h=i(23),_=i(44);t.formatNamesAndIdsForAnalytics=function(e,t,i,o){var s={layer:e.name||p,experiment:t.name||p,variation:i.name||p};if(o&&(s=u.mapValues(s,n)),s.experiment===p&&(!e.integrationStringVersion||1===e.integrationStringVersion))if(r(t.audienceIds))s.experiment="Exp";else{var d=c.get("stores/audience_data");s.experiment=a(d,t.audienceIds)}var l={layer:"("+n(e.id)+")",experiment:"("+n(t.id)+")",variation:"("+n(i.id)+")"};return{names:s,idStrings:l}},t.combineAndTruncateIdAndName=function(e,t,i){var n=i-t.length;if(n<0&&(h.warn("maxLength must be at least long enough to fit the entity ID, which is length"+t.length+". Defaulting to only use entity ID as name."),e=p),e===p)return t;if(e.length>n){var r=Math.min(e.length,n);return e=e.substring(0,r),e+t}return e+" "+t},t.generateAnalyticsString=function(e,t,i,n,r,a){return e.integrationStringVersion&&2===e.integrationStringVersion?o(e,t,i,n,r,a):s(e,t,i,n,r,a)}}),(function(e,t,i){var n=i(97),r=i(7),a=i(9),o=i(23);t.defineProperty=function(e,t,i,s,u){n(e,t,(function(){var e=["prop",s,u||t].join(".");return o.debug('Evaluating getter: "'+e+'"'),a.dispatch(r.RECORD_API_USAGE,{methodName:e}),i()}),!0)}}),(function(e,t){"use strict";function i(e,t,i,n){Object.defineProperty(e,t,{get:function(){var e=i.call(this);return Object.defineProperty(this,t,{value:e,enumerable:!!n,writable:!0}),e},set:function(e){return Object.defineProperty(this,t,{value:e,enumerable:!!n,writable:!0}),e},enumerable:!!n,configurable:!0})}e.exports=i}),(function(e,t,i){function n(e){var i=r.cloneDeep(e);return i.changes&&(i.changes=r.map(i.changes,t.dereferenceChangeId)),i.experiments&&r.each(i.experiments,(function(e){e.changes&&(e.changes=r.map(e.changes,t.dereferenceChangeId)),e.variations&&r.each(e.variations,(function(e){e.actions&&r.each(e.actions,(function(e){e.changes&&(e.changes=r.map(e.changes,t.dereferenceChangeId))}))}))})),i}var r=i(2),a=i(16),o=i(22),s=i(96),u=a.get("stores/change_data");t.translateDecisionToCampaignDecision=function(e){return c(r.cloneDeep(e),{layerId:"campaignId",isLayerHoldback:"isCampaignHoldback"})},t.translateLayerEventToCampaignEvent=function(e){var t={};return s.defineProperty(t,"campaign",(function(){var t=n(e.data.layer);return t}),"campaignEvent"),t.decisionTicket=e.data.decisionTicket,t.decision=this.translateDecisionToCampaignDecision(e.data.decision),t.audiences=e.data.audiences,{type:"lifecycle",name:"campaignDecided",data:t}},t.translateViewActivatedToPageActivated=function(e){return{type:"lifecycle",name:"pageActivated",data:{page:e.data.view}}},t.dereferenceChangeId=function(e){var t=u.getChange(e);return t?o.safeReference(t):e};var c=function(e,t){var i=r.omit(e,r.keys(t));return r.each(t,(function(t,n){i[t]=e[n]})),i}}),(function(e,t,i){var n=i(2),r=i(16),a=r.get("stores/observed_redirect");t.getReferrer=function(){var e=a.get();return e?e.referrer:null},t.getExperimentAndVariation=function(){var e=a.get();return e&&n.isString(e.variationId)?n.pick(e,["experimentId","variationId"]):null}}),(function(e,t,i){var n=i(12).Promise,r=i(101).observeSelector,a=i(102).poll,o=i(104).waitForElement,s=i(105).waitUntil;t.create=function(){return{observeSelector:r,poll:a,Promise:n,waitForElement:o,waitUntil:s}}}),(function(e,t,i){function n(){if(f.shouldObserveChangesIndefinitely()){var e={attributes:!0,childList:!0,subtree:!0,characterData:!0},t=g.getDocumentElement(),i=new MutationObserver(function(){this.disconnect(),d.each(d.keys(m),a),this.observe(t,e)});return function(n){var r=m[n];i.observe(t,e),r.cancelObservation=function(){delete m[n],d.isEmpty(m)&&i.disconnect()}}}return function(e){var t=h.poll(d.partial(a,e));m[e].cancelObservation=function(){t(),delete m[e]}}}function r(e){var t=m[e];t&&t.cancelObservation&&t.cancelObservation()}function a(e){if(m[e]){if(o(m[e]))return 0===m[e].matchedCount&&d.isFunction(m[e].options.onTimeout)&&m[e].options.onTimeout(),void r(e);var t=document.querySelectorAll(m[e].selector);t.length&&(d.each(t,(function(t){t.ni&&t.ni[e]||m[e].callbackQueue.push(t)})),s(e))}}function o(e){var t=e.options.timeout;if(null!==t)if("function"==typeof t)try{return t()}catch(e){}else if(Date.now()-e.startTime>t)return!0;return!1}function s(e){for(;m[e]&&m[e].callbackQueue.length;){var t=m[e].callbackQueue.shift();if(u(t,e),m[e].matchedCount=m[e].matchedCount+1,m[e].callback(t),m[e]&&m[e].options.once)return void r(e)}}function u(e,t){e.ni||(e.ni={}),e.ni[t]=!0}function c(e){try{document.querySelector(e)}catch(e){return!1}return!0}var d=i(2),l=(i(7),i(16)),f=l.get("stores/directive"),g=i(80),p=(i(25),i(9),i(5).generate),h=i(102),_=i(40),v=(l.get("stores/rum"),{once:!1,onTimeout:null,timeout:null}),m={},E=function(e){(E=n())(e)};t.observeSelector=function(e,t,i){if(!c(e))throw new Error("observeSelector expects a valid css selector as its first argument");if(!d.isFunction(t))throw new Error("observeSelector expects a function as its second argument");if(i&&(!d.isObject(i)||d.isFunction(i)))throw new Error("observeSelector expects an object as its third argument");var n=p();return i=d.assign({},v,i||{}),m[n]={callback:t,callbackQueue:[],matchedCount:0,options:i,selector:e,startTime:Date.now()},E(n),_.setTimeout(d.bind(a,null,n),0),d.partial(r,n)}}),(function(e,t,i){function n(e){d[e]&&a.each(d[e].callbacks,(function(e){e.call(null)}))}function r(e,t){d[t]&&d[t].callbacks[e]&&(delete d[t].callbacks[e],a.some(d[t].callbacks)||(clearInterval(d[t].id),delete d[t]))}var a=i(2),o=(i(7),i(16)),s=(i(25),i(9),i(5).generate),u=i(40),c=i(103).DEFAULT_INTERVAL,d=(o.get("stores/rum"),{});t.poll=function(e,t){a.isNumber(t)||(t=c),d[t]||(d[t]={callbacks:{},id:u.setInterval(a.partial(n,t),t)});var i=s();return d[t].callbacks[i]=e,a.partial(r,i,t)},t.cancelAll=function(){a.each(d,(function(e,t){clearInterval(e.id),delete d[t]}))}}),(function(e,t){e.exports={DEFAULT_INTERVAL:20}}),(function(e,t,i){var n=i(12).Promise,r=i(101).observeSelector;t.waitForElement=function(e){return new n(function(t,i){r(e,t,{once:!0})})}}),(function(e,t,i){var n=i(12).Promise,r=i(102).poll;t.waitUntil=function(e){return new n(function(t,i){if(e())return void t();var n=r((function(){e()&&(n(),t())}))})}}),(function(e,t,i){var n=i(87);t.on=function(e){return e.publicOnly=!0,n.on(e)},t.off=n.off,t.emit=function(e){n.emit(e)}}),(function(e,t,i){function n(e){var t,i={};if(e)if(r(e))t=Number(e);else{if("object"!=typeof e)throw new Error("tracker","Revenue argument",e,"not a number.");if(i=a.extend({},e),"revenue"in i){if(!r(i["revenue"]))throw new Error("tracker","Revenue value",i["revenue"],"not a number.");t=Number(i["revenue"]),delete i["revenue"]}}return a.isUndefined(t)||(i.revenue=t),i}function r(e){return a.isNumber(e)||a.isString(e)&&Number(e)==e}var a=i(2),o=i(108);t.activateGeoDelayedExperiments=function(e,t){t||(t=e.lists?"odds":"cdn3"),o.dataFromSource({data:e,source:t})},t.activateSiteCatalyst=function(e){e&&e.sVariable&&o.integrationSettings({id:"adobe_analytics",settings:{sVariableReference:e.sVariable}})},t.bucketUser=t.bucketVisitor=function(e,t){if(e&&t){var i={experimentId:String(e)};t>256?i.variationId=String(t):i.variationIndex=String(t),o.bucketVisitor(i)}},t.disable=function(e){o.disable({scope:e})},t.log=function(e){a.isUndefined(e)&&(e=!0),o.log({level:e?"INFO":"OFF"})},t.optOut=function(e){a.isUndefined(e)&&(e=!0),o.optOut({isOptOut:e})},t.setCookieDomain=function(e){o.cookieDomain({cookieDomain:e})},t.setCookieExpiration=function(e){o.cookieExpiration({cookieExpirationDays:e})},t.setDimensionValue=function(e,t){var i={};i[e]=t,o.user({attributes:i})},t.setUserId=function(e){o.user({userId:e})},t.storeThirdPartyData=function(e,t){o.dataFromSource({source:e,data:t})},t.trackEvent=function(e,t){o.event({eventName:e,tags:n(t)})}}),(function(e,t,i){function n(e){var t;return e.eventId&&(t=I.create(e.eventId,e.eventName,"custom")),b.updateAllViewTags(),function(){var i=g.trackCustomEvent(e.eventName,e.tags,t);i?R.log("API / Tracking custom event:",e.eventName,e.tags):R.log("API / Not tracking custom event:",e.eventName)}}function r(e){var t;return e.eventData&&(t=I.create(e.eventData.id,e.eventData.apiName,"click",e.eventData)),function(){var e=g.trackClickEvent(t);e?R.log("API / Tracking click event:",e):R.log("API / Not tracking click event:",e)}}function a(e){var t=e.eventData,i=T.createLayerState(t.layerId,t.experimentId,t.variationId,t.isLayerHoldback),n=T.createSingle(t.layerId,t.experimentId,t.variationId);return function(){T.recordLayerDecision(i.layerId,i.decisionTicket,i.decision),R.log("API / Tracking decision event:",i),g.trackDecisionEvent(i.decision,i.decisionTicket,n)}}function o(e){var t=b.create(e.eventData.id,e.eventData.apiName),i=b.createState(t.id);return function(){var e=g.trackViewActivation(t,i);e?R.log("API / Tracking pageview event:",e):R.log("API / Not tracking pageview event:",e)}}var s=i(2),u=i(7),c=i(93),d=i(94),l=i(109),f=i(25),g=i(110),p=i(117),h=i(6),_=i(76).create,v=i(24),m=i(118),E=i(120),I=i(121),y=i(87),S=i(9),A=i(26),T=i(113),R=i(23),w=i(122),D=i(114),b=i(123),O=i(74),C=i(16),N=C.get("stores/dimension_data"),L=C.get("stores/view"),P=C.get("stores/view_data"),V=C.get("stores/visitor_id"),F=C.get("stores/layer_data"),k=C.get("stores/directive"),x=!1,M=!1,U=x||M,G=86400,B=90,z=t.ApiListenerError=_("ApiListenerError");t.event=function(e){var t;switch(e.eventType){case"click":t=r(e);break;case"decision":t=a(e);break;case"pageview":t=o(e);break;case"custom":default:t=n(e)}V.getBucketingId()?t():S.dispatch(u.ADD_CLEANUP_FN,{lifecycle:f.Lifecycle.postActivate,cleanupFn:t})},t.clientMetadata=function(e){U&&(S.dispatch(u.SET_CLIENT_NAME,e.clientName),S.dispatch(u.SET_CLIENT_VERSION,e.clientVersion)),x&&e.forceVariationIds&&S.dispatch(u.LOAD_DIRECTIVE,{forceVariationIds:e.forceVariationIds})},t.priorRedirectString=function(e){U&&D.load(e.value)},t.microsnippetError=function(e){if(U){var t=e.errorData.metadata&&e.errorData.metadata.err||{};t.name=e.errorData.code;var i={engine:e.engine,msVersion:e.errorData.msVersion,requestId:e.errorData.requestId,projectId:e.errorData.projectId,snippetKey:e.errorData.snippetKey,args:e.errorData.args};E.handleError(t,i)}},t.rum=function(e){S.dispatch(u.SET_RUM_DATA,e.eventData)},t.initialViewStates=function(e){var t=s.map(e.states,(function(e,t){return{id:t,isActive:e}}));b.registerViews(t)},t.page=function(e){var t=P.getByApiName(e.pageName);if(!t)throw new Error('Unknown page "'+e.pageName+'"');var i=!e.hasOwnProperty("isActive")||e.isActive,n=function(){i?b.activateViaAPI(t,e.tags):(b.deactivate(t),R.log("API / Deactivated Page",b.description(t)))};V.getBucketingId()?n():S.dispatch(u.ADD_CLEANUP_FN,{lifecycle:f.Lifecycle.postViewsActivated,cleanupFn:n})},t.tags=function(e){b.setGlobalTags(e.tags)},t.user=function(e){U&&e.visitorId&&(V.getBucketingId()?(R.log("API / Setting visitor Id:",e.visitorId),O.setId({randomId:e.visitorId})):(R.log("API / Setting visitor Id for activation:",e.visitorId),S.dispatch(u.SET_VISITOR_ID_VIA_API,e.visitorId))),x&&s.each(["IP","location","queryParams","url"],(function(t){e[t]&&(R.log("API / Setting",t,":",e[t]),j(t,e[t],!1))})),R.log("API / Setting visitor custom attributes:",e.attributes),s.each(e.attributes,(function(e,t){var i,n,r=t,a=N.getById(t)||N.getByApiName(t);a&&(r=a.id,i=a.apiName,n=a.segmentId||a.id);var o={id:n,value:e};i&&(o.name=i),j(r,o,!0)}))};var j=function(e,t,i){var n=[{key:i?["custom",e]:[e],value:t,metadata:{lastModified:v.now()}}],r=function(){S.dispatch(u.SET_VISITOR_ATTRIBUTES,{attributes:n})};V.getBucketingId()?r():S.dispatch(u.ADD_CLEANUP_FN,{lifecycle:f.Lifecycle.postVisitorProfileLoad,cleanupFn:r})};t.optOut=function(e){var t=!e.hasOwnProperty("isOptOut")||e.isOptOut;m.setOptOut(t)},t.cookieExpiration=function(e){var t=e.cookieExpirationDays;t');var s=n.querySelector("#"+o);if(!s)throw new Error("Document.write failed to append script");s.onload=i,s.onerror=function(n){r.warn("Failed to load script ("+e+") synchronously:",n),t.addScriptAsync(e,i)}}catch(n){r.debug("Document.write failed for "+e+": "+n.message);var u=function(e){var t=new Function(e.responseText);t(),i&&i()};return a.request({url:e,async:!1,contentType:"text/plain",success:u})["catch"]((function(n){r.error("Failed to load "+e+" via synchronous XHR: "+n.message),t.addScriptAsync(e,i)}))}}}),(function(e,t,i){function n(){var e=null;R.isNumber(e)&&0===pe.getCount()?(W.log("Activating after delay of",e,"ms because no Experiments are running"),H.dispatch(O.SET_RUM_DATA,{data:{activateDfd:!0}}),oe.setTimeout(N.emitActivateEvent,e)):N.emitActivateEvent()}function r(e){we.handleError(e.data.error,e.data.metadata)}function a(){R.isArray(window.optimizely)&&(window.optimizely=R.filter(window.optimizely,(function(e){var t=!0;return!Re.push(e,t)})))}function o(){var e=i(85),n=!!ae.getCurrentId(),r=!!n&&ae.hasSomeData();n?r?W.log("xd / Existing visitor; has data on this origin"):W.log("xd / Existing visitor; new to this origin"):W.log("xd / New visitor");var a=fe.getAccountId(),o="https://a19205964212.cdn.optimizely.com".replace("__SUBDOMAIN__","a"+a+"."),u="/client_storage/a"+a+".html";e.subscribe((function(e,t){ae.checkKeyForVisitorId(e)&&q.setItem(e,t)}));var c=e.fetchAll().then((function(t){if(Se.getVisitorIdLocator())ae.removeVisitorId();else{var i=Te.getCanonicalOrigins();if(i){var n=e.getXDomainUserId(t,i);n&&(W.log("Syncing cross-origin visitor randomId:",n),ae.maybePersistVisitorId({randomId:n}))}}return ae.deleteOldForeignData(),t})).then(t.persistItemsWithId).then((function(e){if(ae.loadForeignData(),n&&!r){var t=!R.isEmpty(e);W.debug("xd / Loaded foreign data? ",t),s(t)}W.log("Loaded visitor data from foreign origins"),N.emitOriginsSyncedEvent()}),(function(e){throw n&&!r&&(W.debug("xd / Failed to load foreign data:",e),s(!1,e)),e}));return Z.all([e.load(o,u)["catch"]((function(e){throw W.debug("xd / Failed to load iframe:",e),n&&!r&&s(!1,e),e})),c["catch"]((function(e){W.debug("xd / Ignored error syncing foreign data (expected if waitForOriginSync used):",e.message),W.debug("xd / Enqueuing sync to happen after visitorId set."),H.dispatch(O.ADD_CLEANUP_FN,{lifecycle:G.Lifecycle.postVisitorProfileLoad,cleanupFn:N.emitOriginsSyncedEvent})}))])}function s(e,t){H.dispatch(O.SET_RUM_DATA,{data:{extras:{xdAttempt:e,xdError:t?t.toString():void 0}}})}function u(e){var t=Ee.getVisitorProfile();return ae.populateEagerVisitorData(e,t)}function c(e,t,i){e=e||[];var n=ve.getAllPlugins(G.PluginTypes.visitorProfileProviders),r=fe.getGlobalHoldbackThreshold(),a=Ee.getVisitorProfile();ae.populateLazyVisitorData(n,a);var o=Se.getBucketingId();if(!o)throw new Error("bucketingId not set");var s,u=Ee.getVisitorProfile();if(t&&!Ce){var c=Ae.getVariationIdMap();s=c[t.id]}var d={bucketingId:o,visitorProfile:u,audiences:e,globalHoldback:r,preferredVariationMap:s,layer:t};return t&&i&&k.isPageIdRelevant(t)?R.map(i,(function(e){return k.createTicket(R.extend({},d,{pageId:e}))})):[k.createTicket(d)]}function d(e){return{bucketingId:Se.getBucketingId(),preferredLayerId:Ae.getPreferredLayerMap()[e.id]}}function l(e){var i=pe.getAllByPageIds(e),n=le.getForceVariationIds(),r=le.getForceAudienceIds(),a=!R.isEmpty(n);a&&W.log("Force variations are in use. Disabling mutual exclusivity.");var o=a?{individual:i}:R.reduce(i,(function(e,t){return t.groupId?e.groups[t.groupId]||(e.groups[t.groupId]=ge.get(t.groupId)):e.individual.push(t),e}),{groups:{},individual:[]});W.log("Deciding Campaigns/Experiments for Page(s)",e);var s=R.map(o.groups,K.description).join(", ");W.log("Groups:",s);var u=R.map(o.individual,Y.description).join(", ");W.log("Campaigns/Experiments not in Groups (by Campaign id):",u);var c=R.map(o.groups,R.partial(f,n,r,e))||[],d=R.map(o.individual,(function(i){var a=R.filter(i.pageIds,R.partial(R.includes,e));return t.decideAndExecuteLayerASAP(n,r,a,i)})),l=c.concat(d);return Z.all(l).then((function(t){var i=R.filter(t,(function(e){return!!e}));return W.log("All Campaigns/Experiments for Page(s) (by Campaign id)",e,"resolved:",R.map(i,Y.description).join(", ")),i}))}function f(e,i,n,r){try{var a=d(r),o=k.decideGroup(r,a);if(o.reason)return W.debug("Not activating Group",K.description(r),"; reason:",o.reason),me.getSampleRum()&&H.dispatch(O.RECORD_LAYER_FEATURE_USAGE,{feature:"mutex",entityId:r.id}),Z.resolve();var s=pe.get(o.layerId);if(!s)return W.debug("Visitor was bucketed into a Campaign ("+o.layerId+") which is not in this snippet"),Z.resolve();var u=R.filter(s.pageIds,R.partial(R.includes,n));return R.isEmpty(u)?(W.debug("Not activating Group",K.description(r),"; reason: visitor was bucketed into a Campaign/Experiment not related to the currently-activating Page(s)"),Z.resolve()):(me.getSampleRum()&&H.dispatch(O.RECORD_LAYER_FEATURE_USAGE,{feature:"mutex",entityId:r.id}),t.decideAndExecuteLayerASAP(e,i,u,s))}catch(e){return W.error("Error getting decision for Group",K.description(r),"; ",e),Z.reject(e)}}function g(e,t,i,n){return new Z(function(r,a){try{_(n,e,t,i,(function(a){R.each(a,(function(r){var a=r.pageId?[r.pageId]:i;W.debug("Deciding layer: ",n,"with decisionTicket: ",r,"and actionViewIds: ",a),p(n,e,t,a,r)})),r(n)}))}catch(e){W.error("Error getting decision for Campaign: "+Y.description(n),e),a(e)}})}function p(e,i,n,r,a){var o=Y.description(e);W.log("Activating Campaign",o,"on Page(s)",r),n.length&&(W.log("Applying force audienceIds:",n,"to Campaign",o),a=R.cloneDeep(a),a.audienceIds=n);var s=t.decideLayer(e,a,i),u=!(!i.length&&!n.length),c=t.getActionsForDecision(e,s,u);T(c.actions,r);if(W.warn("Not preparing actions because LIVE_CHANGES is false"),R.forEach(r,(function(){C.trackDecisionEvent(s,a)})),N.emitLayerDecided({layer:e,decisionTicket:a,decision:s}),s.error)throw s.error;if(me.getSampleRum()){H.dispatch(O.RECORD_LAYER_POLICY_USAGE,{policy:e.policy,layerId:e.id});var d=h(c.actions);H.dispatch(O.RECORD_CHANGE_TYPE_USAGE,{changeTypes:R.keys(d),layerId:e.id}),R.isEmpty(e.integrationSettings)||H.dispatch(O.RECORD_INTEGRATION_USAGE,{integrations:Y.getIntegrationTypes(e),layerId:e.id})}return k.isInCohort(s)?void W.warn("Not executing actions because LIVE_CHANGES is false"):void W.log("Not activating Campaign: "+Y.description(e)+"; not in the cohort because:",s.reason)}function h(e){var t={};return R.each(e,(function(e){R.each(e.changeSet,(function(e){t[e.type]||(t[e.type]=!0)}))})),t}function _(e,t,i,n,r){if(t.length||i.length)return void r(c([],void 0,n));var a=Y.relatedAudienceIds(e),o=R.reduce(a,(function(e,t){var i=ue.get(t);return i&&e.push(i),e}),[]),s=ve.getAllPlugins(G.PluginTypes.audienceMatchers);if(me.getSampleRum()){var u={};if(R.each(o,(function(e){R.extend(u,v(e.conditions,s))})),!R.isEmpty(u)){var d=R.keys(u);H.dispatch(O.RECORD_AUDIENCE_USAGE,{audienceTypes:d,layerId:e.id})}}I(o,s,Y.getActivationTimeout(e),(function(){var t=c(o,e,n);R.map(t,(function(t){m(t,o,e)})),r(t)}))}function v(e,t){var i={};return R.each(e,(function(e){R.isArray(e)?R.extend(i,v(e,t)):R.isObject(e)&&t[e.type]&&(i[e.type]=!0)})),i}function m(e,t,i){var n=R.map(e.audienceIds,R.bind(ue.get,ue)),r=R.filter(t,(function(t){return!R.includes(e.audienceIds,t.id)}));W.log("When deciding Campaign",Y.description(i),"visitor is in audiences:",E(n),"and not in audiences:",E(r))}function E(e){var t=[];return R.each(e,(function(e){t.push(e.name,e)})),t}function I(e,t,i,n){var r=R.reduce(e,(function(e,i){return R.extend(e,L.requiredAudienceFieldsForConditions(i.conditions,t))}),{}),a=R.reduce(r,(function(e,t){if(R.isUndefined(ae.getAttribute(t))){var i=ae.getPendingAttributeValue(t);R.isUndefined(i)||e.push(i)}return e}),[]);if(0===a.length)return n();var o=[].concat(e),s=ee.firstToResolve(R.map(a,(function(e){return Z.resolve(e).then((function(){var e=Ee.getVisitorProfile();if(o=R.filter(o,(function(i){return R.isUndefined(L.isInAudience(e,i,t))})),!R.isEmpty(o))throw new Error("At least one audience is still pending")}))})));Z.race([s,new Z(function(e,t){oe.setTimeout(t,i)})]).then((function(){W.log("Activating Campaign after pending Audiences resolved",e),n()}),(function(){W.log("Activating Campaign after timeout on Audiences",e),n()}))}function y(e,t,i){var n,r=Y.description(e);return n=i.length?k.getDummyLayerDecision(e,i):k.decideLayer(e,t),W.log("Recording decision for Campaign",r,t,"->",n),Y.recordLayerDecision(e.id,t,n),Ce||(n.variationId&&n.experimentId&&ae.updateVariationIdMap(e.id,n.experimentId,n.variationId),e.groupId&&ae.updatePreferredLayerMap(e.groupId,e.id)),n}function S(e){var t=de.getCleanupFns(e);if(t.length>0){for(;t.length>0;)t.shift()();H.dispatch(O.CLEAR_CLEANUP_FN,{lifecycle:e})}}function A(e,t,i){var n=Y.description(e),r="NOT applying changes for Campaign",a={
actions:[],maybeExecute:!1};return a.actions=[].concat(ce.getLayerActions(t.layerId)||[],ce.getExperimentActions(t.experimentId)||[],ce.getExperimentVariationActions(t.experimentId,t.variationId)||[]),!i&&fe.isGlobalHoldback()?(W.log(r,n,"(visitor is in global holdback)"),a):t.isLayerHoldback?(W.log(r,n,"(visitor is in layer holdback)"),a):t.experimentId&&t.variationId?(a.maybeExecute=!0,W.log("Got Actions for Campaign:",n,a.actions),a):(W.log(r,n,"(visitor is not eligible for any Experiments)"),a)}function T(e,t){return R.filter(e,(function(e){return R.isUndefined(e.pageId)||R.includes(t,e.pageId)}))}var R=i(2),w=i(76).create,D=t.ActivationCodeError=w("ActivationCodeError"),b=t.ProjectJSError=w("ProjectJSError"),O=(i(134),i(7)),C=i(110),N=i(117),L=i(138),P=i(86),V=i(109),F=i(24),k=i(139),x=i(16),M=i(118),U=i(80),G=i(25),B=i(87),z=i(111),j=i(144),H=i(9),K=i(143),Y=i(113),q=i(81).LocalStorage,W=i(23),X=i(145),Q=i(83),$=i(122),J=i(88),Z=i(12).Promise,ee=i(146),te=i(114),ie=i(116),ne=i(136),re=i(123),ae=i(74),oe=i(40),x=i(16),se=x.get("stores/session"),ue=x.get("stores/audience_data"),ce=x.get("stores/action_data"),de=x.get("stores/cleanup"),le=x.get("stores/directive"),fe=x.get("stores/global"),ge=x.get("stores/group_data"),pe=x.get("stores/layer_data"),he=x.get("stores/layer"),_e=x.get("stores/pending_events"),ve=x.get("stores/plugins"),me=x.get("stores/rum"),Ee=x.get("stores/visitor"),Ie=x.get("stores/view_data"),ye=x.get("stores/view"),Se=x.get("stores/visitor_id"),Ae=x.get("stores/visitor_bucketing"),Te=x.get("stores/xdomain"),Re=i(93),we=i(120),De=i(1),be=1e3,Oe=!1,Ce=!1,Ne=!1,Le=Ce||Ne,Pe=1e3,Ve=t;t.initialize=function(e){var i=e.clientData;if(V.normalizeClientData(e.clientData),B.on({filter:{type:"error"},handler:r}),H.dispatch(O.DATA_LOADED,{data:i}),W.log("Initialized with DATA:",i),a(),M.setOptOut(le.shouldOptOut()),le.isDisabled()||le.shouldOptOut())return void W.log("Controller / Is disabled");if(De.queueBeacons(),U.isReady()?H.dispatch(O.SET_DOMCONTENTLOADED):U.addReadyHandler((function(){H.dispatch(O.SET_DOMCONTENTLOADED)})),!Le){Q.time("projectJS");var o=fe.getProjectJS();if(R.isFunction(o))try{j.apply(o)}catch(e){W.error("Error while executing projectJS: ",e),P.emitError(new b(e))}Q.timeEnd("projectJS")}R.each(e.plugins||[],(function(e){try{e($)}catch(e){P.emitInternalError(e)}})),R.each(fe.getPlugins()||[],(function(e){try{j.apply(e,[$])}catch(e){P.emitError(e)}})),te.load();var s=B.on({filter:{type:"lifecycle",name:"activated"},handler:function(){Ee.observe(ae.persistVisitorProfile),he.observe(ae.persistLayerStates),se.observe(ae.persistSessionState),_e.observe(X.persistPendingEvents),Ce||Ae.observe(ae.persistVisitorBucketingStore),B.off(s)}});B.on({filter:{type:"lifecycle",name:"viewsActivated"},handler:t.onViewsActivated}),B.on({filter:{type:"lifecycle",name:"pageDeactivated"},handler:t.onPageDeactivated}),t.initializeApi();var u=X.getPendingEvents();if(u&&(H.dispatch(O.LOAD_PENDING_EVENTS,{events:u}),X.retryPendingEvents(u)),B.on({filter:{type:"lifecycle",name:"activate"},handler:t.activate}),N.emitInitializedEvent(),!le.shouldActivate())return Z.resolve();var c=[];if(Te.isDisabled())n();else{var d=t.initializeXDomainStorage();c.push(d);var l=Boolean(Te.getCanonicalOrigins());if(l){var f=ie.makeTimeoutPromise(Pe);Z.race([d,f])["catch"]((function(e){W.error("Failed to initialize xDomain storage: ",e)})).then(n)["catch"](we.handleError)}else n()}return Z.all(c)},t.activate=function(){try{var e=[];W.log("Activated client"),S(G.Lifecycle.preActivate);var t=F.now();H.dispatch(O.ACTIVATE,{activationId:String(t),activationTimestamp:t});var i=Ie.getAll();re.registerViews(i),ae.setId(ae.getOrGenerateId()),e.push(C.trackPostRedirectDecisionEvent()),H.dispatch(O.MERGE_VARIATION_ID_MAP,{variationIdMap:ae.getVariationIdMap()}),H.dispatch(O.MERGE_PREFERRED_LAYER_MAP,{preferredLayerMap:ae.getPreferredLayerMap()}),S(G.Lifecycle.postVisitorProfileLoad),e.push(u(ve.getAllPlugins(G.PluginTypes.visitorProfileProviders)).then((function(){W.log("Populated visitor profile")})));var n=c(),r=k.decideGlobal(n);W.log("Made global decision",n,"->",r),H.dispatch(O.RECORD_GLOBAL_DECISION,r);var a=C.trackClientActivation();a?W.log("Tracked activation event",a):W.log("Not tracking activation event");var o=Ve.setUpViewActivation(i),s=[];return Oe?s=re.activateMultiple(o):R.each(o,(function(e){s=s.concat(re.activateMultiple([e]))})),Ce&&me.getSampleRum()&&H.dispatch(O.RECORD_VIEWS_INITIALLY_ACTIVATED_COUNT,{viewsInitiallyActivatedCount:s.length}),S(G.Lifecycle.postViewsActivated),S(G.Lifecycle.postActivate),N.emitActivatedEvent(),Z.all(e).then((function(){B.emit({type:z.TYPES.LIFECYCLE,name:"activateDeferredDone"}),W.log("All immediate effects of activation resolved")}),P.emitError)}catch(e){return P.emitError(e),Z.reject(e)}},Ve.setUpViewActivation=function(e){var t=[];return R.each(e,(function(e){R.isBoolean(ye.getViewState(e.id).isActive)&&re.isActivationTypeImmediate(e.activationType)?W.debug("Skipping page: already evaluated, presumably at the edge",re.description(e)):re.shouldTriggerImmediately(e.activationType)?t.push(e):e.activationType===G.ViewActivationTypes.callback?(W.debug("Setting up conditional activation for Page",re.description(e)),Ve.activateViewOnCallback(e)):e.activationType===G.ViewActivationTypes.polling?(W.debug("Setting up polling activation for Page",re.description(e)),J.pollFor(R.partial(j.apply,e.activationCode),null,R.partial(ne.isTimedOut,F.now())).then((function(){re.activateMultiple([e])}))["catch"]((function(t){W.warn("Failed to activate view ",e,t)}))):e.activationType!==G.ViewActivationTypes.manual&&P.emitError(new Error("Unknown view activationType: "+e.activationType))})),t},Ve.activateViewOnCallback=function(e){var t=function(t){var i=R.extend({},t,{pageName:e.apiName,type:"page"});Re.push(i)},i={pageId:e.id};Object.defineProperty(i,"isActive",{get:function(){return ye.isViewActive(e.id)}});try{j.apply(e.activationCode,[t,i])}catch(t){var n=new D("("+t.toString()+") in activationCode for "+re.description(e));P.emitError(n,{originalError:t,userError:!0})}},t.onViewsActivated=function(e){var t,i=e.data.views,n=R.map(i,"id");try{if(!Se.getBucketingId())throw new Error("View activated with no visitorId set");var r=l(n)["catch"](P.emitError);return t=Z.all(R.map(i,(function(e){var t=function(){re.parseViewTags(e);var t=C.trackViewActivation(e);t?W.log("Tracked activation for Page",re.description(e),t):W.log("Not Tracking activation for Page",re.description(e))};return U.isReady()?Z.resolve(t()):J.pollFor(U.isReady,be).then(t)}))),Z.all([r,t])}catch(e){P.emitError(e)}},t.onPageDeactivated=function(e){var t=e.data.page,i=ce.getAllActionIdsByPageId(t.id);R.each(i,(function(e){var i=ce.getActionState(e);i&&(R.each(i,(function(e,i){if(e.cancel)try{e.cancel(),W.debug("Controller / Canceled change",i,"observation due to deactivation of page:",t)}catch(e){W.error("Controller / Error canceling change",i,"observation upon deactivation of page.",e)}if(t.undoOnDeactivation&&e.undo)try{e.undo(),W.debug("Controller / Undid change",i,"due to deactivation of page:",t)}catch(e){W.error("Controller / Error undoing change upon deactivation of page.",e)}})),H.dispatch(O.REMOVE_ACTION_STATE,{actionId:e}),W.debug("Controller / Undid changes and/or canceled change observation due to deactivation of page:",t,e))}))},t.initializeApi=function(){var e={push:Re.push};Ne||(e.get=Re.get);var t=window.optimizely;R.isArray(t)&&R.each(t,(function(t){e.push(t)})),e.data={note:"Obsolete, use optimizely.get('data') instead"},e.state={},window.optimizely=e},t.persistItemsWithId=function(e){return R.each(e,(function(e,t){ae.checkKeyForVisitorId(t)&&q.setItem(t,e)})),e},t.initializeXDomainStorage=o,t.decideAndExecuteLayerASAP=g,t.decideLayer=y,t.getActionsForDecision=A}),(function(e,t,i){function n(e,t,i){var n=v.getActionState(t.id);if(!n)return void g.warn("Action / Attempted to prepare change for inactive action: ",t);var r=v.getChangeApplier(e.id,t.id);if(!a.isUndefined(r))return void g.warn("Action / Attempted to prepare a change which is already being applied: ",e);var s={changeId:e.id,actionId:t.id,changeApplier:I.create(e,t,i)};f.dispatch(o.SET_CHANGE_APPLIER,s)}function r(e,t,i,o){if(a.includes(o,t))return void g.error("Change with id "+t+" has circular dependencies: "+o.concat(t));if(!e[t]){var c=m.getChange(t);if(!c){var l="Change with id "+t+" is absent";return o.length&&(l+=" but listed as a dependency for "+o[o.length-1]),void g.warn(l)}e[t]=new p(function(l){var f=a.map(c.dependencies||[],(function(n){return r(e,n,i,o.concat([t]))}));if(c.src){var _="change_"+c.src,E=u.makeAsyncRequest(_,(function(){return h.addScriptAsync("https://cdn.optimizely.com/public/19205964212/data"+c.src,(function(){u.resolveRequest(_)}))})).then((function(){var e=m.getChange(c.id);e||s.emitError(new S("Failed to load async change from src: "+c.src)),n(e,i,d.now())}));f.push(E)}p.all(f).then((function(){var e=d.now(),n=v.getChangeApplier(t,i.id);return n?(g.debug("Action / Applying change:",c),n.apply().then((function(t){t?g.log(t):g.debug("Action / Applied change for the first time in "+(d.now()-e)+"ms:",c),l()}))):(g.debug("Action / Not applying change ",t," - No changeApplier found."),void l())}))["catch"]((function(e){g.error("Action / Failed to apply change:",c,e),l()}))})}return e[t]}var a=i(2),o=i(7),s=i(86),u=i(6),c=i(76).create,d=i(24),l=i(16),f=i(9),g=i(23),p=i(12).Promise,h=i(132),_=l.get("stores/global"),v=l.get("stores/action_data"),m=l.get("stores/change_data"),E=l.get("stores/session"),I=i(135),y=i(136);y.initialize();var S=c("ActionError");t.prepareAction=function(e){g.debug("Action / Preparing:",e),f.dispatch(o.ACTION_EXECUTED,{actionId:e.id,sessionId:E.getSessionId(),layerId:e.layerId,pageId:e.pageId,timestamp:d.now(),activationId:_.getActivationId()});var t=d.now();a.forEach(e.changeSet,(function(i){var r=a.isObject(i)?i.id:i,s=m.getChange(r);s||(f.dispatch(o.ADD_CHANGE,i),s=m.getChange(i.id)),s.src||n(s,e,t)}))},t.executePreparedAction=function(e){g.debug("Action / Executing:",e);var t={},i=a.map(e.changeSet,(function(i){var n=a.isObject(i)?i.id:i;return r(t,n,e,[])}));return p.all(i).then((function(){g.debug("changes for action id="+e.id+" applied")}))}}),(function(e,t,i){var n=i(13).Promise,r=i(24),a=i(16),o=a.get("stores/plugins"),s=i(25),u=i(23);t.create=function(e,t,i){var a={identifier:e.id,action:t,startTime:i||r.now()};try{var c=o.getPlugin(s.PluginTypes.changeAppliers,e.type);if(!c)throw new Error("Unrecognized change type "+e.type);return new c(e,a)}catch(e){u.error("Change applier was never properly constructed:",e);var d={apply:function(){return n.reject(e)}};return d}}}),(function(e,t,i){function n(){"interactive"!==document.readyState&&"complete"!==document.readyState||(t.domReadyTime=Date.now())}var r=i(137),a=i(16).get("stores/directive");t.domReadyTime=null,t.initialize=function(){n(),document.addEventListener("readystatechange",n,!0)},t.isTimedOut=function(e){var i=Date.now();if(!t.domReadyTime||!e)return!1;var n=Math.max(e,t.domReadyTime);return a.isEditor()&&(n=t.domReadyTime),!(i-n-1)return{experimentId:e.experiments[i].id,variationId:e.experiments[i].variations[n].id};return null}function a(e){var t=y.getPlugin(h.PluginTypes.deciders,e);if(s.isEmpty(t))throw new Error("No deciders found for policy: "+e);return t}function o(e,t){var i=y.getAllPlugins(h.PluginTypes.audienceMatchers);return s.reduce(t,(function(t,n){return c.isInAudience(e,n,i)&&t.push(n.id),t}),[])}var s=i(2),u=i(86),c=i(138),d=i(140),l=i(141),f=i(142).DecisionError,g=i(7),p=i(16),h=i(25),_=i(9),v=i(143),m=i(113),E=i(23),I=i(44),y=p.get("stores/plugins"),S=p.get("stores/global"),A=p.get("stores/layer_data");t.isPageIdRelevant=function(e){if(!e)return!1;var t=a(e.policy);return s.isFunction(t.includePageIdInDecisionTicket)?t.includePageIdInDecisionTicket(e):t.includePageIdInDecisionTicket===!0},t.createTicket=function(e){var t=s.pick(e,["bucketingId","globalHoldback","preferredVariationMap","pageId"]);return s.extend(t,{audienceIds:o(e.visitorProfile,e.audiences),activationId:S.getActivationId()}),t},t.decideGlobal=function(e){var t=d.isHoldback(e.bucketingId,{id:null,holdback:e.globalHoldback});return{isGlobalHoldback:t}},t.decideGroup=n,t.decideLayer=function(e,t){E.debug("Deciding: ",e,t);var i,n,r=a(e.policy),o={layerId:e.id,experimentId:null,variationId:null,isLayerHoldback:d.isHoldback(t.bucketingId,e)};if(s.isEmpty(e.experiments))throw new f("No experiments in layer.");try{if(r.decideLayer){E.debug("Decision / Using decider's custom decideLayer.");var c=r.decideLayer(e,t);i=c.experiment,n=c.variation}else E.debug("Decision / Using default decideLayer behavior."),i=r.selectExperiment(e,t.audienceIds,t.bucketingId),n=l.selectVariation(i,t.audienceIds,t.bucketingId,t.activationId,t.preferredVariationMap)}catch(e){e instanceof f?o.reason=e.message:o.error=e}return o.experimentId=i?i.id:null,o.variationId=n?n.id:null,o.error&&(o.error.name="DecisionEngineError",u.emitError(o.error)),o},t.getDummyLayerDecision=function(e,t){var i,n=r(e,t);return n?(E.log("Decision / Applying force variation:",n.variationId,"to Campaign",m.description(e)),i={layerId:e.id,variationId:n.variationId,experimentId:n.experimentId,isLayerHoldback:!1,reason:"force"}):(E.log("No variation matches ids:",t,"in Campaign",m.description(e)),i={layerId:e.id,variationId:null,experimentId:null,isLayerHoldback:!1,reason:"force"}),i},t.isInCohort=function(e){if(!e.experimentId||!e.variationId)return!1;var t=A.get(e.layerId);return!(I.isSingleExperimentPolicy(t.policy)&&e.isLayerHoldback)}}),(function(e,t,i){var n=i(64),r=t.TOTAL_POINTS=1e4;t.bucketingNumber=function(e,t,i){var a=n.hashToInt(e+t,i,r);return a},t.isHoldback=function(e,i){return t.bucketingNumber(e,i.id,n.Seed.IGNORING)<(i.holdback||0)},t.chooseWeightedCandidate=function(e,i,r){for(var a=t.bucketingNumber(e,i,n.Seed.BUCKETING),o=0;oa)return r[o].entityId;throw new Error("Unable to choose candidate")}}),(function(e,t,i){var n=i(2),r=i(140),a=i(124),o=i(142).DecisionError,s=i(23),u=i(9),c=i(7),d="impression";t.isValidExperiment=function(e,t){var i,r=n.partial(n.includes,e);return s.groupCollapsed("Decision / Evaluating audiences for experiment:",t,e),i=!t.audienceIds||a.evaluate(t.audienceIds,r),s.groupEnd(),s.debug("Decision / Experiment",t,"is valid?",i),i},t.selectVariation=function(e,t,i,a,l){if(!e.variations||0===e.variations.length)throw new o('No variations in selected experiment "'+e.id+'"');if(!e.weightDistributions&&e.variations.length>1)throw new o('On selected experiment "'+e.id+'", weightDistributions must be defined if # variations > 1');var f;if(e.bucketingStrategy&&e.bucketingStrategy===d)if(1===e.variations.length)f=e.variations[0].id;else{var g=a;f=r.chooseWeightedCandidate(i+g,e.id,e.weightDistributions)}else if(f=1===e.variations.length?e.variations[0].id:r.chooseWeightedCandidate(i,e.id,e.weightDistributions),l&&l[e.id]){s.debug("Decision / Using preferredVariationMap to select variation for experiment:",e.id);var p=l[e.id];if(!n.find(e.variations,{id:p}))return u.dispatch(c.RECORD_STICKY_BUCKETING_FEATURE,{feature:"stoppedVariation",id:e.id}),s.debug("Decision / Preferred variation:",p,"not found on experiment:",e.id,". Visitor not bucketed."),null;p!==f&&(u.dispatch(c.RECORD_STICKY_BUCKETING_FEATURE,{feature:"preferredVariation",id:e.id}),f=p)}var h=n.find(e.variations,{id:f});if(h)return s.debug("Decision / Selected variation:",h),h;throw new o('Unable to find selected variation: "'+f+'".')},t.getExperimentById=function(e,t){var i=n.find(e.experiments,{id:t});if(i)return i;throw new o("Unable to find selected experiment.")},t.hasVariationActionsOnView=function(e,t){return s.debug("Decision / Checking variation:",e,"for actions on pageId:",t),!!n.find(e.actions,(function(e){return e.pageId===t&&!n.isEmpty(e.changes)}))}}),(function(e,t){function i(e){this.message=e}i.prototype=new Error,t.DecisionError=i}),(function(e,t,i){function n(e){return r.map(e.weightDistributions,"entityId")}var r=i(2);t.description=function(e){var t=!!e.name,i=t?'"'+e.name+'" ':"",r=n(e).join(", ");return i+"(id "+e.id+", campaigns: "+r+")"}}),(function(module,exports,__webpack_require__){var createError=__webpack_require__(77),di=__webpack_require__(16),Logger=__webpack_require__(23),CSP_MODE=!1,EXEC_WITH_JQUERY=!0,ExecError=exports.Error=createError("ExecError");exports.apply=function(e,t){t=t||[],EXEC_WITH_JQUERY&&(t=t.concat(di.get("env/jquery")));try{return e.apply(void 0,t)}catch(i){throw Logger.warn("Error applying function",e,"with args:",t,i),new ExecError(i)}},exports.eval=function(str){if(CSP_MODE)throw new ExecError("eval is not supported in CSP mode");try{return EXEC_WITH_JQUERY&&(str="var $ = optimizely.get('jquery');"+str),eval(str)}catch(e){throw Logger.warn("Error executing JS:",str,e),new ExecError(e)}}}),(function(e,t,i){var n=i(2),r=i(86),a=i(25),o=i(26),s=i(81).LocalStorage,u=i(23),c=i(91),d=i(16),l=d.get("stores/pending_events"),f=a.StorageKeys.PENDING_EVENTS;t.persistPendingEvents=function(){try{var e=l.getEventsString();s.setItem(f,e),i(85).setItem(f,e)}catch(e){u.warn("PendingEvents / Unable to set localStorage key, error was: ",e),r.emitInternalError(e)}},t.getPendingEvents=function(){try{return o.parse(s.getItem(f))}catch(e){return null}},t.retryPendingEvents=function(e){n.forOwn(e,(function(e,t){c.retryableRequest(e.data,t,e.retryCount)})),n.isEmpty(e)||u.log("Retried pending events: ",e)}}),(function(e,t,i){var n=i(2),r=i(12).Promise;t.firstToResolve=function(e){return new r(function(t){n.each(e,(function(e){r.resolve(e).then(t,(function(){}))}))})}}),(function(e,t,i){function n(e){var t=!1;if(a.isArray(window.optimizely)&&a.each(window.optimizely,(function(i){a.isArray(i)&&"verifyPreviewProject"===i[0]&&String(i[1])===e&&(t=!0)})),!t)throw new Error("Preview projectId: "+e+" does not match expected")}function r(){s.on({filter:{type:u.TYPES.ANALYTICS,name:"trackEvent"},handler:f}),s.on({filter:{type:u.TYPES.LIFECYCLE,name:"viewActivated"},handler:f}),s.on({filter:{type:u.TYPES.LIFECYCLE,name:"layerDecided"},handler:f}),s.on({filter:{type:"error"},publicOnly:!0,handler:f})}var a=i(2),o=i(16),s=i(87),u=i(111),c=i(40),d=o.get("stores/directive"),l="optimizelyPreview",f=function(e){var t=c.getGlobal(l);t.push(e)};t.initialize=function(e){d.isSlave()&&n(e),r()},t.setupPreviewGlobal=function(){c.getGlobal(l)||c.setGlobal(l,[])},t.pushToPreviewGlobal=function(e){f(e)}}),(function(e,t,i){e.exports=function(e){e.registerVisitorProfileProvider(i(149))}}),(function(e,t){e.exports={provides:"visitorId",getter:["stores/visitor_id",function(e){return e.getRandomId()}]}}),(function(e,t,i){e.exports=function(e){e.registerVisitorProfileProvider(i(151)),e.registerAudienceMatcher("behavior",i(153))}}),(function(e,t,i){var n=i(152);e.exports={provides:"events",isTransient:!0,getter:[function(){return n.getEvents()}]}}),(function(e,t,i){var n=i(2),r=i(72),a=i(16),o=a.get("stores/visitor_events"),s=1e3;t.getEvents=function(){var e=r.getEvents(),t=[].concat.apply([],n.values(o.getForeignEvents())),i=[].concat.apply([],n.values(o.getForeignEventQueues())),a=r.mergeAllEvents([e,t,i]);return a.slice(a.length-s)}}),(function(e,t,i){var n=i(2),r=i(26),a=i(154),o=i(155);e.exports={fieldsNeeded:["events"],match:function(e,t){var i=[],s=r.parse(t.value);return i=n.isUndefined(s.version)?[s]:a.buildFromSpecV0_1(s),n.every(i,(function(t){return o.isSatisfied(t,e.events)}))}}}),(function(e,t,i){function n(e){return e=(e||"").toString().trim(),g[e]||e}function r(e,t,i){var n={where:t};if(e.count&&(n["limit"]=e.count),e.modifier===s.FREQUENCY_FILTERS.MOST_FREQUENT){var r=s.getFieldKeyPathForSource(e.name,i),a=s.aggregate("count"),o=s.aggregateField("count"),d=s.groupField(r);return u.extend(n,{select:[{field:d}],groupBy:s.groupBy([r]),aggregate:[a],orderBy:[{field:o,direction:"DESC"}]})}return u.extend(n,{orderBy:[{field:[c.FIELDS.TIME],direction:"DESC"}]})}function a(e){var t=[];if(u.isUndefined(e))throw new Error("rule is undefined");if(!u.isObject(e))throw new Error("rule is not an Object");"0.2"!==e["version"]&&t.push('version: not "0.2"'),e["filter"]&&(u.isArray(e["filter"])?u.each(e["filter"],(function(e,i){var n=s.validateFieldKeyPathV0_2(e["field"],s.FieldPurpose.FILTER);n&&t.push("filter["+i+"]: "+n);var r=s.validateComparatorAndValue(e["comparator"],e["value"]);r&&t.push("filter["+i+"]: "+r)})):t.push("filter: not an array"));var i=[],n=[];if(e["sort"]&&(e["reduce"]&&e["reduce"]["aggregator"]&&"nth"!==e["reduce"]["aggregator"]&&t.push("sort: superfluous because we can apply aggregator "+d.stringify(e["reduce"]["aggregator"])+" to unsorted items"),u.isArray(e["sort"])?u.each(e["sort"],(function(e,r){var a=s.validateFieldKeyPathV0_2(e["field"],s.FieldPurpose.SORT);a&&t.push("sort["+r+"]: "+a),e["field"]&&"frequency"===e["field"][0]?i.push(e):n.push(e);var u=o(e["direction"]);u&&t.push("sort["+r+"]: "+u)})):t.push("sort: not an array"),i.length&&n.length&&t.push('sort: sorting by non-["frequency"] field is pointless because we are going to sort the picked values by ["frequency"]'),i.length&&!e["pick"]&&t.push('sort: sorting by ["frequency"] is impossible because no values have been picked')),e["pick"]){e["reduce"]&&"count"===e["reduce"]["aggregator"]&&t.push('pick: superfluous because we can apply aggregator "count" to raw events');var r=s.validateFieldKeyPathV0_2(e["pick"]["field"]);r&&t.push("pick: "+r)}if(e["reduce"]){var a=e["reduce"]["aggregator"],c="aggregator "+(d.stringify(a)||String(a)),l=e["reduce"]["n"],f="index "+(d.stringify(l)||String(l));u.includes(["sum","avg","max","min","count","nth"],a)||t.push("reduce: "+c+" is unknown"),u.includes(["sum","avg","max","min"],a)&&(e["pick"]||t.push("reduce: "+c+" is impossible to use because no values have been picked")),"nth"===a?((!u.isNumber(l)||isNaN(l)||parseInt(l,10)!==l||l<0)&&t.push("reduce: "+f+" is not a non-negative integer (mandated by "+c+")"),e["sort"]||t.push('reduce: aggregator "nth" is meaningless without a specific sort order')):u.isUndefined(l)||t.push("reduce: "+f+" is defined (not mandated by "+c+")")}if(t.length)throw new Error(t.join("\n"))}function o(e){var t="direction "+(d.stringify(e)||String(e));if(!u.includes(["ascending","descending"],e))return t+' is not "ascending" or "descending"'}var s=t,u=i(2),c={FIELDS:i(63).FIELDS,FIELDS_V0_2:i(63).FIELDS_V0_2},d=i(26),l=i(23),f=i(155);s.MILLIS_IN_A_DAY=864e5,s.aggregateField=function(e,t){return u.isString(t)&&(t=[t]),t=t||f.DEFAULT_FIELD,[f.generateAlias(e,t)]},s.groupField=function(e){return u.isString(e)&&(e=[e]),e=e||f.DEFAULT_FIELD,[e.join(".")]};var g={"<":"lt","<=":"lte",">":"gt",">=":"gte","=":"eq","==":"eq"};s.fieldComparison=function(e,t,i){return e=n(e),u.isString(t)&&(t=[t]),"exists"===e?{op:e,args:[{field:t}]}:{op:e,args:[{field:t},{value:i}]}},s.relativeTimeComparison=function(e,t){return{op:n(e),args:[{op:"-",args:[{eval:"now"},{field:[c.FIELDS.TIME]}]},{value:t*s.MILLIS_IN_A_DAY}]}},s.rangeTimeComparison=function(e){return u.isArray(e)?{op:"between",args:[{field:[c.FIELDS.TIME]},{value:[e[0]||+new Date(0),e[1]||+new Date]}]}:(l.error("Rule builder","rangeTimeComparison passed invalid range",e),null)},s.groupBy=function(e){for(var t=[],i=0;i0)throw new Error('A "pick" clause must not be specified with "count" or "most_recent", "most_frequent" modifiers'+d.stringify(e));return[r(e.pick,t,e.source)]}return i.length>0?i:[{where:t}]},s.buildFromSpecV0_2=function(e){a(e);var t={where:{op:"and",args:u.map(e["filter"]||[],(function(e){return"age"===e["field"][0]?s.relativeTimeComparison(e["comparator"]||"eq",e["value"]/s.MILLIS_IN_A_DAY):s.fieldComparison(e["comparator"]||"eq",s.convertFieldKeyPathFromSpecV0_2(e["field"]),e["value"])}))}};if(e["reduce"]&&"count"===e["reduce"]["aggregator"])return u.extend(t,{aggregate:[{op:"count",args:[{field:["*"]}]}],select:[{field:["_count_*"]}]});var i=[],n=[];if(e["sort"]&&(u.each(e["sort"],(function(e){u.includes(["ascending","descending"],e["direction"])&&(u.includes(["time","age"],e["field"][0])&&n.push(e),"frequency"===e["field"][0]&&i.push(e))})),n.length&&!i.length&&(t["orderBy"]=u.filter(u.map(n,(function(e){return"time"===e["field"][0]?{field:s.convertFieldKeyPathFromSpecV0_2(["time"]),direction:"ascending"===e["direction"]?"ASC":"DESC"}:"age"===e["field"][0]?{field:s.convertFieldKeyPathFromSpecV0_2(["time"]),direction:"ascending"===e["direction"]?"DESC":"ASC"}:void 0}))))),e["pick"]&&e["pick"]["field"]){var r=s.convertFieldKeyPathFromSpecV0_2(e["pick"]["field"]);if(e["reduce"]&&u.includes(["avg","max","min","sum"],e["reduce"]["aggregator"]))return u.extend(t,{aggregate:[{op:e["reduce"]["aggregator"],args:[{field:r}]}],select:[{field:[f.generateAlias(e["reduce"]["aggregator"],r)]}]});t=i.length?u.extend(t,{groupBy:[{field:r}],aggregate:[{op:"count",args:[{field:["*"]}]}],orderBy:[{field:["_count_*"],direction:"ascending"===i[0]["direction"]?"ASC":"DESC"}],select:[{field:[r.join(".")]}]}):u.extend(t,{select:[{field:r}]})}if(e["reduce"]&&"nth"===e["reduce"]["aggregator"]){var o=e["reduce"]["n"];if(u.isNumber(o)&&o>=0&&Number(o)===Math.floor(Number(o)))return u.extend(t,{offset:o,limit:1})}return t},s.convertFieldKeyPathFromSpecV0_2=function(e){return"tags"===e[0]&&"revenue"===e[1]?["r"]:[c.FIELDS_V0_2[e[0]]].concat(e.slice(1))},s.FieldPurpose={FILTER:"filter",SORT:"sort",PICK:"pick"},s.validateFieldKeyPathV0_2=function(e,t){var i="field "+(d.stringify(e)||String(e));if(!u.isArray(e)||!u.every(e,u.isString))return i+" is not an array of strings";if("tags"===e[0]&&e.length>2||"tags"!==e[0]&&e.length>1)return i+" includes too many strings";if("tags"===e[0]&&e.length<2)return i+" does not specify an exact tag";if(e.length<1)return i+" does not specify a top-level field";var n=u.keys(c.FIELDS_V0_2),r=["age","frequency"];return t===s.FieldPurpose.FILTER&&(n.push("age"),r=["frequency"]),t===s.FieldPurpose.SORT&&(n=["time","age","frequency"],r=["name","type","category","tags"]),u.includes(r,e[0])?i+" is not supported here":u.includes(n,e[0])?void 0:i+" is unknown"},s.validateComparatorAndValue=function(e,t){var i="comparator "+(d.stringify(e)||String(e)),n="value "+(d.stringify(t)||String(t));if(!u.isString(e)&&!u.isUndefined(e))return i+" is not a string";switch(e){case void 0:case"eq":case"is":case"contains":break;case"lt":case"gt":case"lte":case"gte":if(!u.isNumber(t))return n+" is not a number (mandated by "+i+")";break;case"in":if(!u.isArray(t))return n+" is not an array (mandated by "+i+")";break;case"between":if(!(u.isArray(t)&&2===t.length&&u.isNumber(t[0])&&u.isNumber(t[1])&&t[0]<=t[1]))return n+" is not a pair of increasing numbers (mandated by "+i+")";break;case"regex":if(!(u.isString(t)||u.isArray(t)&&2===t.length&&u.isString(t[0])&&u.isString(t[1])))return n+" is not a pattern string or a [pattern string, flags string] array (mandated by "+i+")";break;case"exists":if(!u.isUndefined(t))return n+" is not undefined (mandated by "+i+")";break;default:return i+" is unknown"}}}),(function(e,t,i){var n=i(2),r=i(25),a=i(23),o=n.bind(a.log,a),s=i(24),u=i(19).getFieldValue,c=i(26),d=function(e,t,i){if(e.getValueOrDefault)return e.getValueOrDefault(t,i);if(!n.isArray(t))return i;var r=u(e,t);return"undefined"==typeof r&&(r=i),r},l=function(e){return"string"==typeof e?e.trim().toLowerCase():e};t.clause={WHERE:"where",GROUP_BY:"groupBy",AGGREGATE:"aggregate",HAVING:"having",ORDER_BY:"orderBy",SELECT:"select",OFFSET:"offset",LIMIT:"limit",FROM:"from"},t.DEFAULT_FIELD=["*"],t.booleanOperators={eq:function(e){var t=n.map(e,l);
return t[0]==t[1]},is:function(e){return e[0]===e[1]},gt:function(e){return e[0]>e[1]},lt:function(e){return e[0]=e[1]},lte:function(e){return e[0]<=e[1]},"in":function(e){var t=n.map(e[1]||[],l);return n.includes(t,l(e[0]))},between:function(e){return e[1][0]<=e[0]&&e[0]<=e[1][1]},contains:function(e){var t=n.map(e,(function(e){return"string"==typeof e?e.toLowerCase():e}));return(t[0]||"").indexOf(t[1])!==-1},regex:function(e){try{var t,i;return n.isString(e[1])?(t=e[1],i="i"):(t=e[1][0]||"",i=e[1][1]||""),new RegExp(t,i).test(e[0])}catch(e){return a.error("Rules",'In operator "regex", error: '+(e.message||"invalid RegExp /"+[t,i].join("/"))),!1}},exists:function(e){return"undefined"!=typeof e[0]},and:function(e){return n.every(e,(function(e){return e}))},or:function(e){return n.some(e,(function(e){return e}))},not:function(e){return!e[0]}},t.arithmeticOperators={"+":function(e){return(e[0]||0)+(e[1]||0)},"-":function(e){return(e[0]||0)-(e[1]||0)},"/":function(e){return(e[0]||0)/(e[1]||1)},"%":function(e){return(e[0]||0)%(e[1]||1)}},t.aggregateOperators={sum:function(e,i){for(var n=e[0]||t.DEFAULT_FIELD,r=0,a=0;ac)return o}return 0})):(o("Rules","groupBy rule must be an array"),t)};t.rewrite=function(e){function i(e,s){if(n.isArray(e)&&("and"!==e[0]&&"or"!==e[0]&&"not"!==e[0]&&a.error("Rules","Unexpected operation "+e[0]+". Continuing optimistically."),e={op:e[0],args:e.slice(1)}),e.hasOwnProperty("field")||e.hasOwnProperty("value")||e.hasOwnProperty("eval"))return e;if(s&&e["op"]in t.aggregateOperators){var u=(e["args"]&&e["args"][0]||{})["field"]||t.DEFAULT_FIELD,c=t.generateAlias(e["op"],u);return c in o||(r.push({op:e["op"],args:e["args"]}),o[c]=!0),{field:[c]}}for(var d=[],l=e["args"]||[],f=0;f0)&&(s[t.clause.AGGREGATE]=(e[t.clause.AGGREGATE]||[]).concat(r));for(var u=[t.clause.GROUP_BY,t.clause.ORDER_BY,t.clause.SELECT,t.clause.OFFSET,t.clause.LIMIT],c=0;c0&&(r=n.map(r,(function(e){return"Sub-rule "+i+": "+e}))),e.hasOwnProperty(t.clause.FROM)&&(r=r.concat(E(e[t.clause.FROM],i+1))),r},I=function(e,t){return n.map(t,(function(t){return n.map(e,(function(e){return p(t,e)}))}))},y=function(e,i){var r=i;if(e.hasOwnProperty(t.clause.FROM)&&(a.debug("Evaluating FROM clause:",e[t.clause.FROM]),r=y(e[t.clause.FROM],r),a.debug("Results after FROM:",r)),a.debug("Evaluating WHERE clause:",e[t.clause.WHERE]),r=n.filter(r,(function(i){return p(i,e[t.clause.WHERE])})),a.debug("Results after WHERE:",r),e.hasOwnProperty(t.clause.AGGREGATE)){a.debug("Evaluating AGGREGATE clause:",e[t.clause.AGGREGATE]);var o=h(e[t.clause.GROUP_BY],r),s=_(e[t.clause.AGGREGATE],o);r=v(o,s),a.debug("Results after AGGREGATE:",r)}e.hasOwnProperty(t.clause.HAVING)&&(a.debug("Evaluating HAVING clause:",e[t.clause.HAVING]),r=n.filter(r,(function(i){return p(i,e[t.clause.HAVING])})),a.debug("Results after HAVING:",r)),e.hasOwnProperty(t.clause.ORDER_BY)&&(a.debug("Evaluating ORDER_BY clause:",e[t.clause.ORDER_BY]),r=m(e[t.clause.ORDER_BY],r),a.debug("Results after ORDER_BY:",r));var u=0;e.hasOwnProperty(t.clause.OFFSET)&&(a.debug("Evaluating OFFSET clause:",e[t.clause.OFFSET]),u=Number(e[t.clause.OFFSET]));var c;return e.hasOwnProperty(t.clause.LIMIT)&&(a.debug("Evaluating LIMIT clause:",e[t.clause.LIMIT]),c=u+Number(e[t.clause.LIMIT])),(u>0||!n.isUndefined(c))&&(r=r.slice(u,c),a.debug("Results after OFFSET/LIMIT:",r)),e.hasOwnProperty(t.clause.SELECT)&&(a.debug("Evaluating SELECT clause:",e[t.clause.SELECT]),r=I(e[t.clause.SELECT],r),a.debug("Results after SELECT:",r)),r};t.execute=function(e,i){e=t.rewrite(e),a.shouldLog(r.LogLevel.DEBUG)&&a.groupCollapsed("Evaluating Behavioral Rule"),a.debug("Rule:",e,c.stringify(e)),a.debug("Events:",i);var n=E(e);if(n.length>0)throw new Error("Rule "+c.stringify(e)+" has violations: "+n.join("\n"));var o=y(e,i);return a.debug("Rule result:",o),a.shouldLog(r.LogLevel.DEBUG)&&a.groupEnd(),o},t.isSatisfied=function(e,i){try{return t.execute(e,i).length>0}catch(t){return a.error("Rules","Error "+t.toString()+" while evaluating rule "+c.stringify(e)),!1}}}),(function(e,t,i){e.exports=function(e){e.registerVisitorProfileProvider(i(157))}}),(function(e,t,i){var n=i(2),r=i(158),a=i(152),o=i(26),s=i(154);e.exports={provides:"customBehavior",shouldTrack:!0,isLazy:!1,getter:["stores/global","stores/visitor_attribute_entity",function(e,t){var i=e.getProjectId(),u=n.filter(n.map(t.getCustomBehavioralAttributes(i),(function(e){try{return{id:e.id,granularity:r.GRANULARITY.ALL,rule:s.buildFromSpecV0_2(o.parse(e.rule_json))}}catch(e){return}}))),c=a.getEvents();return r.evaluate(u,c)}]}}),(function(e,t,i){function n(e){if(0===e.length)return[];for(var t=e.length-1,i=o.FIELDS.SESSION_ID,n=e[t][i];t>0&&n===e[t-1][i];)t--;return e.slice(t)}function r(e,t){if(0===e.length||t<=0)return[];var i=+new Date-t*s.MILLIS_IN_A_DAY;i-=i%s.MILLIS_IN_A_DAY;for(var n=e.length;n>0&&i<=e[n-1][o.FIELDS.TIME];)n--;return e.slice(n)}var a=i(23),o={FIELDS:i(63).FIELDS},s=i(154),u=i(155);t.GRANULARITY={ALL:"all",CURRENT_SESSION:"current_session",LAST_30_DAYS:"last_30_days",LAST_60_DAYS:"last_60_days"},t.evaluate=function(e,i){var o={};if(0===i.length){for(var s=0;s0){var t=e[0],i=a(t,[n.FIELDS.SESSION_INDEX]);return i===o}return!0}]}}),(function(e,t){e.exports={fieldsNeeded:["first_session"],match:function(e){return!!e.first_session}}}),(function(e,t,i){e.exports=function(e){e.registerApiModule("behavior",i(163))}}),(function(e,t,i){function n(e,t){var i=l.buildFromSpecV0_1(t);if(1!==i.length)throw new Error("Invalid query descriptor; verify that no aggregators are specified");return f.execute(i[0],e)}function r(e,t){return c.map(e,(function(e){return c.isFunction(e.toObject)?e.toObject(t):e}))}function a(e,t){if(!e)return["Descriptor not defined"];var i=[];return e.count&&i.push('Unexpected "count" clause specified'),e.pick&&e.pick.modifier&&t.indexOf(e.pick.modifier)===-1&&i.push('Invalid "pick" modifier "'+e.pick.modifier+'"'),c.each(e.filters,(function(e){c.isUndefined(e.modifier)||i.push('Unexpected "filter" modifier "'+e.modifier+'"')})),i.length>0?i:void 0}function o(e,t){var i,o={revenueAsTag:!1,timeAsTimestamp:!0};if(c.isUndefined(t))return i=d.getEvents(e),r(i,o);if(c.isNumber(t)){if(t<=0)throw new Error("Count must be a positive integer, got "+t);return i=d.getEvents(e),r(i.slice(-t),o)}var s=a(t,c.values(l.RECENCY_FILTERS));if(s)throw new Error(s.join("\n"));return i=d.getEvents(e),r(n(i,t),o)}function s(e,t){if(t=c.cloneDeep(t)||{},!t.pick)throw new Error('No "pick" clause provided in query descriptor');if(!t.pick.name)throw new Error('No field name provided in "pick" clause');t.pick.modifier=t.pick.modifier||l.FREQUENCY_FILTERS.MOST_FREQUENT;var i=a(t,c.values(l.FREQUENCY_FILTERS));if(i)throw new Error(i.join("\n"));var r=d.getEvents(e);return n(r,t)}function u(e,t){var i=l.buildFromSpecV0_2(t),n=d.getEvents(e),a=r(f.execute(i,n),{revenueAsTag:!0,timeAsTimestamp:!1});return(t.pick||t.reduce&&"count"===t.reduce.aggregator)&&(a=c.flatten(a)),t.reduce&&(a=a[0]),a}var c=i(2),d=i(152),l=i(154),f=i(155);e.exports=["stores/visitor_events",function(e){return{getEvents:c.partial(o,e),getByFrequency:c.partial(s,e),query:c.partial(u,e)}}]}),(function(e,t,i){e.exports=function(e){e.registerDependency("sources/browser_id",i(165)),e.registerVisitorProfileProvider(i(170)),e.registerVisitorProfileProvider(i(171)),e.registerAudienceMatcher("browser_version",i(172))}}),(function(e,t,i){var n=i(166);t.getId=function(){return n.get().browser.id},t.getVersion=function(){return n.get().browser.version}}),(function(e,t,i){var n=i(2),r=i(167),a=i(40),o=i(7),s=i(16),u=i(9),c=s.get("stores/ua_data");t.get=function(){var e=c.get();return n.isEmpty(e)&&(e=r.parseUA(a.getUserAgent()),u.dispatch(o.SET_UA_DATA,{data:e})),e}}),(function(e,t,i){function n(e){if(e=(e||"").toLowerCase(),e in u)return e;var t=a.keys(u);return a.find(t,(function(t){var i=u[t];return a.includes(i,e)}))||"unknown"}function r(e,t,i){return t?t:"unknown"===e?"unknown":i?"mobile":"desktop_laptop"}var a=i(2),o=i(168);t.parseUA=function(e){var t=new o(e),i=t.getBrowser(),a=t.getOS(),u=t.getDevice(),d=(a.name||"unknown").toLowerCase(),l=(i.name||"unknown").toLowerCase(),f=s(u.type,l,d);return{browser:{id:n(i.name),version:i.version},platform:{name:d,version:a.version},device:{model:c[u.model]||"unknown",type:r(l,u.type,f),isMobile:f}}};var s=function(e,t,i){if(a.includes(["mobile","tablet"],e))return!0;if(a.includes(["opera mini"],t))return!0;var n=["android","blackberry","ios","windows phone"];return!!a.includes(n,i)},u={gc:["chrome","chromium","silk","yandex","maxthon","chrome webview"],edge:["edge"],ie:["internet explorer","iemobile"],ff:["firefox","iceweasel"],opera:["opera","opera mini","opera tablet"],safari:["safari","mobile safari","webkit"],ucbrowser:["uc browser"]},c={iPhone:"iphone",iPad:"ipad"}}),(function(e,t,i){var n;!(function(r,a){"use strict";var o="0.7.17",s="",u="?",c="function",d="undefined",l="object",f="string",g="major",p="model",h="name",_="type",v="vendor",m="version",E="architecture",I="console",y="mobile",S="tablet",A="smarttv",T="wearable",R="embedded",w={extend:function(e,t){var i={};for(var n in e)t[n]&&t[n].length%2===0?i[n]=t[n].concat(e[n]):i[n]=e[n];return i},has:function(e,t){return"string"==typeof e&&t.toLowerCase().indexOf(e.toLowerCase())!==-1},lowerize:function(e){return e.toLowerCase()},major:function(e){return typeof e===f?e.replace(/[^\d\.]/g,"").split(".")[0]:a},trim:function(e){return e.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"")}},D={rgx:function(e,t){for(var i,n,r,o,s,u,d=0;d0?2==o.length?typeof o[1]==c?this[o[0]]=o[1].call(this,u):this[o[0]]=o[1]:3==o.length?typeof o[1]!==c||o[1].exec&&o[1].test?this[o[0]]=u?u.replace(o[1],o[2]):a:this[o[0]]=u?o[1].call(this,u,o[2]):a:4==o.length&&(this[o[0]]=u?o[3].call(this,u.replace(o[1],o[2])):a):this[o]=u?u:a;d+=2}},str:function(e,t){for(var i in t)if(typeof t[i]===l&&t[i].length>0){for(var n=0;nNumber(i[a]))return 1}}return 0}}),(function(e,t,i){e.exports=function(e){e.registerVisitorProfileProvider(i(175)),e.registerAudienceMatcher("campaign",i(176))}}),(function(e,t,i){var n=i(119);e.exports={provides:"campaign",shouldTrack:!0,isSticky:!0,getter:[function(){return n.getQueryParamValue("utm_campaign")}]}}),(function(e,t,i){var n=i(20);e.exports={fieldsNeeded:["campaign"],match:function(e,t){return n.hasMatch(t.value,t.match,e.campaign)}}}),(function(e,t,i){e.exports=function(e){e.registerVisitorProfileProvider(i(178));var t=i(179);e.registerAudienceMatcher("custom_attribute",t),e.registerAudienceMatcher("custom_dimension",t)}}),(function(e,t,i){var n=i(2),r=i(25),a=i(23),o=i(16),s=o.get("stores/dimension_data");e.exports={provides:"custom",attributionType:r.AttributionTypes.LAST_TOUCH,restorer:function(e){return n.reduce(e,(function(e,t,i){var r=i,o=s.getByApiName(i),u=s.getById(i),c=u;return n.isObject(t)?(!t.id&&o&&(c=o,r=o.id,n.extend(t,{id:c.segmentId||c.id})),t.name||c&&c.apiName&&(t.name=c.apiName),t.id||c||a.warn("Unable to determine ID for custom attribute:",i,"; segmentation is disabled."),e[r]=t,e):(a.error('Unable to restore custom attribute "'+i+'" because value is not an object'),e)}),{})},shouldTrack:!0}}),(function(e,t,i){var n=i(2),r=i(20);t.match=function(e,t){var i;return e.custom&&(i=e.custom[t.name]),n.isObject(i)&&(i=i.value),r.hasMatch(t.value,t.match,i)}}),(function(e,t,i){e.exports=function(e){e.registerDependency("sources/device",i(181)),e.registerVisitorProfileProvider(i(182)),e.registerAudienceMatcher("device",i(183))}}),(function(e,t,i){var n=i(166);t.getDevice=function(){var e=n.get().device;return"unknown"!==e.model?e.model:"tablet"===e.type?"tablet":e.isMobile?"mobile":"desktop"}}),(function(e,t){e.exports={provides:"device",shouldTrack:!0,isSticky:!0,getter:["sources/device",function(e){return e.getDevice()}]}}),(function(e,t){e.exports={fieldsNeeded:["device"],match:function(e,t){return e.device===t.value}}}),(function(e,t,i){e.exports=function(e){e.registerVisitorProfileProvider(i(185)),e.registerAudienceMatcher("device_type",i(186))}}),(function(e,t,i){var n=i(166);e.exports={provides:"device_type",shouldTrack:!0,isSticky:!0,getter:[function(){var e=n.get().device;switch(e.type){case"mobile":return"phone";case"tablet":case"desktop_laptop":return e.type;default:return"other"}}]}}),(function(e,t){e.exports={fieldsNeeded:["device_type"],match:function(e,t){return e.device_type===t.value}}}),(function(e,t,i){e.exports=function(e){e.registerVisitorProfileProvider(i(188)),e.registerAudienceMatcher("referrer",i(189))}}),(function(e,t,i){var n=i(80),r=i(99);e.exports={provides:"referrer",shouldTrack:!0,isSticky:!0,getter:[function(){var e=r.getReferrer()||n.getReferrer();return""===e&&(e=null),e}]}}),(function(e,t,i){var n=i(190);t.fieldsNeeded=["referrer"],t.match=function(e,t){return null!==e.referrer&&n(e.referrer,t)}}),(function(e,t,i){function n(e){var t=e.indexOf("?");return t!==-1&&(e=e.substring(0,t)),t=e.indexOf("#"),t!==-1&&(e=e.substring(0,t)),e}function r(e){return a(n(e))}function a(e,t){e=e.replace("/?","?"),e=e.toLowerCase().replace(/[\/&?]+$/,"");var i=d.slice(0);t||(i=i.concat(u));for(var n=i.length,r=0;r0&&(t[1]="?"+o.join("&")),r&&(t[1]+="#"+r),t.join("")}return e}var s=i(2);e.exports=function(e,t){e=o(e);var i=t.value;switch(t.match){case"exact":return e=a(e),e===a(i);case"regex":try{return Boolean(e.match(i))}catch(e){}return!1;case"simple":return e=r(e),i=r(i),e===i;case"substring":return e=a(e,!0),i=a(i,!0),e.indexOf(i)!==-1;default:return!1}};var u=["www."],c="optimizely_",d=["https?://.*?.?optimizelyedit.(com|test)/","https?://.*.?optimizelypreview.(com|test)/","https?://(edit|preview)(-hrd|-devel)?.optimizely.(com|test)/","https?://.*?.?optimizelyedit(-hrd)?.appspot.com/","https?://"]}),(function(e,t,i){e.exports=function(e){
e.registerVisitorProfileProvider(i(192)),e.registerAudienceMatcher("source_type",i(194))}}),(function(e,t,i){var n=i(119),r=i(80),a=i(99),o=i(193),s=["google\\.\\w{2,3}(\\.\\w{2,3})?/(search|url)","https://(www)?\\.google\\..*?/$","bing\\.\\w{2,3}(\\.\\w{2,3})?/(search|url)","yahoo\\.\\w{2,3}(\\.\\w{2,3})?/search","baidu\\.\\w{2,3}(\\.\\w{2,3})?/s?"];e.exports={provides:"source_type",shouldTrack:!0,isSticky:!1,getter:[function(){return function(e,t){var i=function(){if(n.getQueryParamValue("utm_source")||n.getQueryParamValue("gclid")||n.getQueryParamValue("otm_source"))return"campaign";for(var e=a.getReferrer()||r.getReferrer(),t=0;t=s&&c<=u&&a.includes(o.days,d)}}),(function(e,t,i){function n(e){function t(e,t,i){try{u(t),e[i]=t}catch(e){N.emitError(new X("Bad value for eventTags["+i+"]: "+e.message))}return e}var i=C.keys(ie),n=C.omit(e,i),r=C.pick(e,i),a=C.reduce(n,t,{}),o=C.reduce(r,(function(e,i,n){var r=ie[n];r.excludeFeature||t(a,i,n);try{r.validate(i),e[n]=r.sanitize(i),a[n]=e[n]}catch(e){N.emitError(new X("Bad value for eventMetrics["+n+"]: "+e.message))}return e}),{});return o.tags=a,o}function r(e){var t=C.extend({entity_id:e.pageId,key:e.pageApiName,timestamp:e.timestamp,uuid:e.eventId,type:J},n(e.eventTags));return t}function a(e){return C.extend({entity_id:e.eventEntityId,key:e.eventApiName,timestamp:e.timestamp,uuid:e.eventId,type:e.eventCategory},n(e.eventTags))}function o(e){return C.extend({entity_id:e.eventEntityId,key:e.eventApiName,timestamp:e.timestamp,uuid:e.eventId,type:e.eventCategory},n(e.eventTags))}function s(e){return{entity_id:null,type:Q,uuid:e.eventId,timestamp:e.timestamp}}function u(e){if(null==e)throw new Error("Feature value is null");if("object"==typeof e){var t;try{t=k.stringify(e)}catch(e){}throw new Error('Feature value is complex: "'+t||'[object]"')}}function c(e){if(null==e)throw new Error("Metric value is null");if(!C.isNumber(e))throw new Error("Metric value is not numeric")}function d(e){return C.reduce(e,(function(e,t){try{u(t.value),e.push({entity_id:t.id||null,key:t.name,type:t.type,value:t.value})}catch(e){x.warn("Error evaluating user feature",t,e)}return e}),[])}function l(e,t,i){Y.dispatch(V.REGISTER_TRACKER_EVENT,{event:e,decisions:i}),f(t),D()}function f(e){var t=d(e);Y.dispatch(V.UPDATE_TRACKER_VISITOR_ATTRIBUTES,{attributes:t})}function g(e){var t=d(e.userFeatures),i={account_id:e.accountId,anonymize_ip:e.anonymizeIP,client_name:e.clientName,client_version:e.clientVersion,project_id:e.projectId,visitors:[{session_id:h(e.sessionId),visitor_id:e.visitorId,attributes:t,snapshots:[{decisions:[{campaign_id:e.layerId,experiment_id:e.experimentId,variation_id:e.variationId,is_campaign_holdback:e.isLayerHoldback}],events:[{uuid:e.decisionId,entity_id:e.layerId,timestamp:e.timestamp,type:$}]}]}]};Y.dispatch(V.REGISTER_PREVIOUS_BATCH,i),D()}function p(e){var t=C.isNull(q.getAnonymizeIP())?void 0:q.getAnonymizeIP(),i={account_id:e.accountId,anonymize_ip:t,client_name:e.clientName,client_version:e.clientVersion,project_id:e.projectId,visitors:[]};i.revision=e.revision,Z&&(i.enrich_decisions=!0);var n={session_id:h(e.sessionId),visitor_id:e.visitorId,attributes:[],snapshots:[]},r=b(e.layerStates);Y.dispatch(V.REGISTER_TRACKER_VISITOR,{data:i,visitor:n,decisions:r}),D()}function h(e){return oe?ae:e}function _(e){var t={entity_id:e.layerId,type:$,uuid:e.decisionId,timestamp:e.timestamp};Y.dispatch(V.REGISTER_TRACKER_DECISION,{decisionEvent:t,decisions:b(e.layerStates)}),f(e.userFeatures),D()}function v(){if(!W.canSend())return void x.debug("Not sending events (holding)");var e=W.hasEventsToSend(),t=W.hasPreviousBatchesToSend();return e||t?(t&&(C.each(W.getPreviousBatches(),m),Y.dispatch(V.RESET_TRACKER_PREVIOUS_BATCHES)),void(e&&(Y.dispatch(V.FINALIZE_BATCH_SNAPSHOT),m(W.getEventBatch()),Y.dispatch(V.RESET_TRACKER_EVENTS)))):void x.debug("Not sending events because there are no events to send")}function m(e){x.debug("Sending ticket:",e);var t=L.generate();B.retryableRequest({url:P,method:"POST",data:E(e)},t)}function E(e){var t=C.extend({},C.pick(e,["account_id","anonymize_ip","client_name","client_version","enrich_decisions","project_id","revision"]),{visitors:C.map(e.visitors,I)});return t}function I(e){return{visitor_id:e.visitor_id,session_id:ae,attributes:C.map(e.attributes,y),snapshots:C.map(e.snapshots,S)}}function y(e){return w(e,{entity_id:"e",key:"k",type:"t",value:"v"})}function S(e){var t=e.events;return t=A(t),{activationTimestamp:q.getActivationTimestamp(),decisions:C.map(e.decisions,T),events:C.map(t,R)}}function A(e){var t=C.reduce(e,(function(e,t){var i,n=t.type===J&&C.isEmpty(t.tags)&&C.isEmpty(C.pick(t,C.keys(ie)));if(i=n?t.type:t.uuid,e[i]){var r=e[i].timestamp;t.timestamp>r&&(r=t.timestamp),e[i]=C.extend({},e[i],{key:e[i].key+"-"+(t.key||""),entity_id:e[i].entity_id+"-"+t.entity_id,timestamp:r})}else e[i]=t;return e}),{});return C.values(t)}function T(e){return w(e,{campaign_id:"c",experiment_id:"x",is_campaign_holdback:"h",variation_id:"v"})}function R(e){return e.key===$&&(e.type=$,delete e.key),w(e,{entity_id:"e",key:"k",quantity:"q",revenue:"$",tags:"a",timestamp:"t",uuid:"u",value:"v",type:"y"})}function w(e,t){return C.reduce(e,(function(e,i,n){return n in t&&(e[t[n]||n]=i),e}),{})}function D(){function e(){var t=!ne||j.isLoaded();t&&v(),W.isPolling()&&G.setTimeout(e,te)}return W.shouldBatch()?void(W.isPolling()||(G.setTimeout(e,te),Y.dispatch(V.SET_TRACKER_POLLING,!0),G.setTimeout((function(){Y.dispatch(V.SET_TRACKER_BATCHING,!1),Y.dispatch(V.SET_TRACKER_POLLING,!1)}),ee))):void v()}function b(e){return C.map(e,(function(e){return{campaign_id:e.layerId,experiment_id:e.decision.experimentId,variation_id:e.decision.variationId,is_campaign_holdback:e.decision.isLayerHoldback}}))}function O(){var e=W.getPersistableState();if(e)try{x.debug("Persisting pending batch:",e),U.persistTrackerOptimizelyData(e),Y.dispatch(V.SET_TRACKER_DIRTY,!1)}catch(e){x.debug("Failed to persist pending batch:",e)}}var C=i(2),N=i(86),L=i(5),P="https://logx.optimizely.com/v1/events",V=i(7),F=i(76).create,k=i(26),x=i(23),M=i(115),U=i(74),G=i(40),B=i(91),z=i(16),j=i(80),H=i(87),K=i(111),Y=i(9),q=z.get("stores/global"),W=z.get("stores/tracker_optimizely"),X=t.Error=F("OptimizelyTrackerError"),Q="client_activation",$="campaign_activated",J="view_activated",Z=!1,ee=1e4,te=1e3,ie={revenue:{validate:c,sanitize:Math.floor,excludeFeature:!0},quantity:{validate:c,sanitize:Math.floor,excludeFeature:!0},value:{validate:c,sanitize:C.identity}},ne=!1,re=!1,ae="AUTO",oe=!0,se=function(e){e.timing===M.TrackLayerDecisionTimingFlags.postRedirectPolicy?g(e):_(e)},ue=[function(){return function(e){l(r(e),e.userFeatures,b(e.layerStates))}}],ce=[function(){return function(e){p(e),l(s(e),e.userFeatures,b(e.layerStates))}}],de=[function(){return function(e){l(o(e),e.userFeatures,b(e.layerStates))}}],le=[function(){return function(e){l(a(e),e.userFeatures,b(e.layerStates))}}],fe={trackLayerDecision:se,postRedirectPolicy:M.PostRedirectPolicies.TRACK_AFTER_SYNC,nonRedirectPolicy:M.NonRedirectPolicies.TRACK_IMMEDIATELY,onPageActivated:ue,onClientActivation:ce,onClickEvent:le,onCustomEvent:de};e.exports=function(e){e.registerAnalyticsTracker("optimizely",fe),H.on({filter:{type:K.TYPES.ANALYTICS,name:"sendEvents"},handler:function(){Y.dispatch(V.SET_TRACKER_SEND_EVENTS,!0),W.isPolling()||v()}}),H.on({filter:{type:K.TYPES.ANALYTICS,name:"holdEvents"},handler:function(){Y.dispatch(V.SET_TRACKER_SEND_EVENTS,!1)}}),Y.dispatch(V.SET_TRACKER_SEND_EVENTS,!re);var t=H.on({filter:{type:"lifecycle",name:"activated"},handler:function(){W.observe(O),H.off(t)}})}}),(function(e,t,i){e.exports=function(e){e.registerApiModule("recommender",i(202))}}),(function(e,t,i){function n(e){return e===T.SELF_CONTAINED_MULTI_COL}function r(e){return e===T.SEPARATE_CATALOG_SINGLE_COL}function a(e,t){if(!n(t))return w in e?I.parse(e[w]):(y.warn('recommender / Expected key "'+w+'" not found'),[]);var i=new RegExp("^"+D+"(\\d+)$"),r=E.reduce(e,(function(t,n,r){var a=r.match(i);if(a){var o=I.parse(e[r]);o&&E.isObject(o)&&(t[a[1]]=o)}return t}),[]);return E.filter(r,(function(e){return!E.isUndefined(e)}))}function o(e,t){return[e,encodeURIComponent(t)].join("/")}function s(e,t){var i=function(e,t,i){if(!E.isArray(e)||E.isEmpty(e))throw new Error("No "+i+"s available");var n;if(t){if(n=E.find(e,{id:t}),!n)throw new Error("No "+i+" found with specified id "+t)}else{if(e.length>1)throw new Error("No "+i+" id specified when there are more than one available.");n=e[0]}return n},n=e.getRecommenderServices(),r=i(n,t&&t.recommenderServiceId,"recommender service");r.idTagName||(r.idTagName="id");var a=i(r.recommenders,t&&t.recommenderId,"recommender");return{recommenderService:r,recommender:a}}function u(e){var t=I.parse(e);return t.data}function c(e,t){return A.request({url:o(e,t)}).then((function(e){var t=u(e.response),i={};return R in t&&(i=I.parse(t[R])),i}))}function d(e,t,i,n){var s=!(!n||!n.fetchWithMetadata),c=n&&n.overrideServingUrl||t.servingUrl;return A.request({url:o(c,i)}).then((function(t){var i=[],o=u(t.response);return i=a(o,e.serviceVersion),s&&r(e.serviceVersion)?l(e,E.map(i,e.idTagName),n).then((function(e){return e=E.map(e,(function(e){return e instanceof Error&&(e={}),delete e["__proto__"],e})),E.merge(i,e)})):i}))}function l(e,t,i){var n=i&&i.overrideCatalogUrl||e.catalogUrl;return E.isString(t)?c(n,t):S.all(E.map(t,(function(e){return c(n,e)["catch"]((function(t){return y.warn("recommender / Failed to get recommendations for item:",e,t),t}))})))}function f(e,t,i){var n=s(e,i),r=n.recommenderService,a=n.recommender;return d(r,a,t,{overrideServingUrl:i&&i.overrideServingUrl,overrideCatalogUrl:i&&i.overrideCatalogUrl,fetchWithMetadata:!0})}function g(e,t,i){var n=s(e,i),a=n.recommenderService,o=n.recommender;if(!r(a.serviceVersion))throw new Error("Recommender service "+a.id+" serves self-contained recos. Use `fetchRecommendations` API call");return d(a,o,t,{overrideServingUrl:i&&i.overrideServingUrl,fetchWithMetadata:!1})}function p(e,t,i){var n=s(e,i),a=n.recommenderService;if(!r(a.serviceVersion))throw new Error("Recommender service "+a.id+" serves self-contained recos. Use `fetchRecommendations` API call");return E.isArray(t)&&t.length>b?S.reject("Cannot fetch more than "+b+" items"):l(a,t,i)}function h(e,t,i,n){return new _(e,t,i,n)}function _(e,t,i,n){this.recommenderSettings=t;var r=s(e,t);this.recommenderService=r.recommenderService,this.recommender=r.recommender,this.targetId=i,n&&(this.preFilter=n.preFilter,this.canonicalize=n.canonicalize,this.postFilter=n.postFilter),this._globalStore=e,this.reset()}function v(){var e={recosNoMeta:[],recosNoMetaOffset:0,recos:[],recosOffset:0};return y.debug("recommender / fetching recommended items for",this.targetId,"from recommender",this.recommender.id),r(this.recommenderService.serviceVersion)?g(this._globalStore,this.targetId,this.recommenderSettings).then(E.bind((function(t){return e.recosNoMeta=E.filter(t,this.preFilter),e}),this)):f(this._globalStore,this.targetId,this.recommenderSettings).then(E.bind((function(t){return e.recos=E(t).filter(this.preFilter).map(this.canonicalize).filter(this.postFilter).value(),e}),this))}function m(e){var t=e.numNeeded,i=e.buffer,n=i.recosNoMeta.length-i.recosNoMetaOffset;if(t<=0||n<=0)return S.resolve(e);var r=5,a=Math.max(t,r),o=E.slice(i.recosNoMeta,i.recosNoMetaOffset,i.recosNoMetaOffset+a),s=E.map(o,this.recommenderService.idTagName);i.recosNoMetaOffset+=s.length;var u=e.recosSoFar;return y.debug("recommender / fetching metadata for",s,"from recommender",this.recommender.id),p(this._globalStore,s,this.recommenderSettings).then(E.bind((function(n){n=E.map(n,(function(e){return e instanceof Error?{}:e})),i.recos=E(o).merge(n).map(this.canonicalize).filter(this.postFilter).value();var r=E.slice(i.recos,0,t);return i.recosOffset=r.length,e.recosSoFar=u.concat(r),e.numNeeded-=r.length,e.numNeeded>0?m.call(this,e):e}),this))}var E=i(2),I=i(26),y=i(23),S=i(12).Promise,A=i(91),T={SELF_CONTAINED_MULTI_COL:1,SEPARATE_CATALOG_SINGLE_COL:2},R="itemMetadata",w="recos",D="reco",b=20;_.prototype.reset=function(){this._bufferPromise=null},_.prototype.next=function(e){var t=Math.floor(E.isNumber(e)?e:1);if(t<=0)throw new Error("Invalid argument "+e+". Must be positive integer");this._bufferPromise||(this._bufferPromise=v.call(this));var i=this._bufferPromise.then(E.bind((function(e){var i=[],n=e.recos.length-e.recosOffset;return n>0&&(i=e.recos.slice(e.recosOffset,e.recosOffset+t),e.recosOffset+=i.length,t-=i.length),t<=0?{result:i,buffer:e}:m.call(this,{buffer:e,recosSoFar:i,numNeeded:t}).then((function(e){return{result:e.recosSoFar,buffer:e.buffer}}))}),this));return this._bufferPromise=i.then((function(e){return e.buffer})),i.then((function(e){return e.result}))},e.exports=["stores/global",function(e){return{fetchRecommendations:E.partial(f,e),fetchRecommendedItems:E.partial(g,e),fetchItemMetadata:E.partial(p,e),getRecommendationsFetcher:E.partial(h,e)}}]})]);Daily chart - A record number of journalists were behind bars in 2020 | Graphic detail | The Economist